我试图在模板中显示来自不同模型的数据,但我不知道为什么它不能正常工作。
模型.py:
class Company(models.Model):
name = models.CharField(max_length=100)
class Location(models.Model):
company = models.ForeignKey('Company',
related_name='locations')
View .py:
def sth(request):
loc_list = Location.objects.all()
return render(request, 'blabla/index.html', {'loc_list': loc_list})
模板:
{% for loc in loc_list %}
{% for entry in loc.company_set.all %}
{{entry.name}}
{% endfor %}
{% endfor %}
为什么没有显示公司名称?
最佳答案
您的外键关系是错误的...您当前定义它们的方式,一个Location
只能有一个与其关联的Company
,但是在您正在尝试获取 Company
列表的模板。
为了使您的模板逻辑正常工作,您的模型必须定义如下:
class Company(models.Model):
name = models.CharField(max_length=100)
location = models.ForeignKey('Location')
class Location(models.Model):
# You probably need some other fields in here.
然后这样就可以了:
{% for loc in loc_list %}
{% for entry in loc.company_set.all %}
{{entry.name}}
{% endfor %}
{% endfor %}
关于python - Django 模板中的后向关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33207085/