我在models.py中添加了一个Languages模型:
class Languages(models.Model):
language = models.CharField(max_length=20,blank=False)
level = models.CharField(max_length=30,blank=False)
ordering = models.IntegerField(default=1)
class Meta:
order = ['order','id']
def __unicode__(self):
return ''.join([self.language, '-', self.level])
叫
python3 manage.py makemigrations && python3 manage.py migrate
并创建了几个实例:
python3 manage.py shell
In [1]: from resume.models import Languages
In [2]: Languages.objects.all()
Out[2]: <QuerySet [<Languages: Languages object (5)>, <Languages: Languages object (6)>]>
In [3]: Languages.objects.get(id=5).__dict__
Out[3]:
{'_state': <django.db.models.base.ModelState at 0x7f0f21bb7668>,
'id': 5,
'language': 'English',
'level': 'professional',
'ordering': 1}
但是我的模板没有检测到任何语言:
<h2>Languages</h2>
{% for lan in languages %}
<div>
<h3>{{ lan.language }}</h3>
<h5>{{ lan.level }}</h5>
</div>
{% endfor %}
在网站的html上,我看到&lt; h2&gt;语言,但不是其他语言。其他型号工作正常。
如上所述,这是我添加到models.py的最新型号。我也叫同花顺:
python3 manage.py flush
这是showmigrations的一部分:
python3 manage.py showmigrations | grep -i langua
[X] 0016_remove_language_personalinfo
[X] 0018_delete_language
[X] 0019_languages
如何解决此问题?
答案 0 :(得分:1)
您需要在视图中的模板上下文中添加languages
。像这样:
context = {'languages': Languages.objects.all()}
return render(request, 'index.html', context)