我有一些上传的文件,我想在模板中显示他们的名字。这在技术上不应该是一个问题,应该与
一起使用{% for obj in objs %}
<li>{{obj.field}}</li>
但在我的情况下奇怪的是它并没有显示任何东西。我的文件已上传并显示在我的数据库中,但没有显示。我已经搜索了一个解决方案,但大多数类似的问题主要与语法有关。
我的文档课程:
class Document(models.Model):
description = models.CharField(max_length=255, blank=True)
document = models.FileField(upload_to='documents/')
uploaded_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.document)
这就是我展示它们的方式:
<div class="card-body text-light">
{% for file in doc %}
<b>{{file.description}}</b>
{%endfor%}
</div>
&#13;
我查看了文档和一些教程,理论上它应该能够显示文件。
编辑:
def user_panel(request):
if request.user.is_authenticated:
return render(request, 'main/user_panel.html')
else:
return render(request, 'main/login.html')
答案 0 :(得分:1)
您的观点不正确。应在objs
函数的上下文中定义render
queryset。例如:
def user_panel(request):
if request.user.is_authenticated:
context = {'objs': Document.objects.all()}
return render(request, 'main/user_panel.html', context)
else:
return render(request, 'main/login.html')
以下是关于render
功能的更多内容:https://docs.djangoproject.com/en/2.0/topics/http/shortcuts/#render