python - 如何向在 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=""'。
解决方案
简单地说,我们可以这样做:
try:
data = request.user.data
except Data.DoesNotExist:
data = ''
另外,请查看Django 官方文档中的一对一关系示例。