我在django
模板上显示数据库中的数据时遇到了一些问题模型:
class CityInfo (models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=200)
landmark_type = models.CharField(blank=True, max_length=30)
business = 'Business'
student = 'Student'
tourist = 'Tourist'
def __str__(self):
return self.name
相关观点:
def itemget(request):
data=CityInfo.objects.all()
return render(request,'CityApp/infopage.html', {'data': data})
相关网址:
url(r'itemget/$',views.itemget,{'template_name': 'CityApp/info_page.html'},name='itemget'),
infopage.html:
<ul>
{% for item in data %}
<li>
<h1>{{ item.name }}</h1>
</li>
{% endfor %}
<ul>
上面的html会产生一个空白列表,我不明白为什么。
答案 0 :(得分:0)
尝试将views.py
更改为以下内容:
def itemget(request):
data = CityInfo.objects.all()
context={
'data': data
}
return render(request, "CityApp/infopage.html", context)
答案 1 :(得分:0)
试试这个:
def __str__(self):
return "%s" % self.name
我不确定因为我在我的旧智能手机上。
否则,您的def __str__
在课堂上缩进了吗?
您使用的是Python 2还是Python 3?如果是Python 3,则str
。否则,您必须使用__unicode__
编辑:
从你的urls.py文件中,你有:
url(r'itemget/$',views.itemget,{'template_name': 'CityApp/info_page.html'},name='itemget'),
移除视图中已有的template_name part
,不要忘记在^
之前添加itemget
url(r'^itemget/$',views.itemget ,name='itemget'),