Django不显示模型数据

时间:2018-03-20 20:43:57

标签: python django upload models

我有一些上传的文件,我想在模板中显示他们的名字。这在技术上不应该是一个问题,应该与

一起使用
{% 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)

这就是我展示它们的方式:

&#13;
&#13;
<div class="card-body text-light">
            {% for file in doc %}
            <b>{{file.description}}</b>
            {%endfor%}
        </div>
&#13;
&#13;
&#13;

我查看了文档和一些教程,理论上它应该能够显示文件。

编辑:

def user_panel(request):

if request.user.is_authenticated:
    return render(request, 'main/user_panel.html')
else:
    return render(request, 'main/login.html')

1 个答案:

答案 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