首页 > 解决方案 > 如何向在 Django 中上传文件的用户显示上传的文件?

问题描述

我正在尝试构建一个系统,用户可以在其中将他们的 CSV 文件上传到 Django 后端。但是我遇到了一个问题,我只想向上传它的用户显示 CSV 文件。我在模型中创建了一个字段,可以跟踪上传文件的用户。这是我的一些代码。

CSV 文件模型:

class Data(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE,default=1)
    filename = models.CharField(max_length=40,blank=False)
    csv_file = models.FileField(upload_to='documents/',blank=False)

    def __str__(self):
        return self.filename

以及视图逻辑:

def accounts(request):
    user = Data.objects.values('user')
    if user == request.user:
        main_data = Data.objects.all()
    else:
        main_data = "" 
    dict = {'main_data':main_data, 'name' : request.user.username}
    return render(request, 'accounts.html',dict)

我只得到那个 else 值'main_data=""'。

标签: pythondjango

解决方案


简单地说,我们可以这样做:

try:
    data = request.user.data
except Data.DoesNotExist:
    data = ''

另外,请查看Django 官方文档中的一对一关系示例。


推荐阅读