python - Django 模板中的后向关系

标签 python django django-templates

我试图在模板中显示来自不同模型的数据,但我不知道为什么它不能正常工作。

模型.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/

相关文章:

django - 如何获取 Django 模板中定义的所有变量?

c++ - Linux 中的实时 RX 和 TX 速率

python - Flask WTForms 上的经度纬度

python - Django:显示 UpdateView 表单时如何放置现有字段?

升级到 1.10 后的 Django SuspiciousOperation

python - 自动转义 Django 表单错误

python - 使用 Counter 计算带空格的字符串的出现次数

python - django模型表格。包括来自相关模型的字段

python - 在 Django 模型中添加一对多关系

python - 有没有一种优雅的方法将 {% if .. %} 应用于 Django 中的整个标签负载?