首页 > 解决方案 > 这个模板和模型的 Django 代码有什么问题

问题描述

所以我正在尝试用 Django 制作动态页面。我已经在管理页面中输入了“姓名”、“背景”和“介绍”数据。现在我正试图将其展示给我的“.../index”页面。但它不起作用。

这是models.py的python代码

class UserInfo(models.Model):
    name = models.CharField(max_length = 10)
    background = models.CharField(max_length=30)
    introduction = models.CharField(max_length = 60)

在我的 views.py 文件中,我有这个:

def index(request):
    user = UserInfo.objects.all()
    return render(request, 'index.html', {'user' : user})

最后在我的“index.html”文件中,我有这个:

<p>{{user.name}}</p>
<p>{{user.background}}</p>
<p>{{user.introduction}}</p>

所以这些代码应该在“.../index”页面中向我显示名称、背景和介绍,但它什么也没显示。我看不出我做错了什么。

我非常感谢您的帮助。:) 谢谢。

标签: pythondjango

解决方案


您的user变量是用户列表,因此您需要在模板中对其进行迭代

{% for item in user %}
    <p>{{item.name}}</p>
    <p>{{item.background}}</p>
    <p>{{item.introduction}}</p>
{% endfor %}

或获取特定用户index()

def index(request):
    user = UserInfo.objects.get(pk = your_user_pk)
    return render(request, 'index.html', {'user' : user})

那么你的模板应该可以工作

<p>{{user.name}}</p>
<p>{{user.background}}</p>
<p>{{user.introduction}}</p>

推荐阅读