无法从Many2one关系解析对象列表

时间:2018-12-24 13:59:02

标签: python-3.x django-2.0

我创建了2个模型:公司和节点,每个公司可以有许多节点:这些是我的类:

class Node(models.Model):
    name = models.CharField(default='node', max_length=32)
    firm = models.ForeignKey(
        'Firm',
        on_delete=models.CASCADE,
        null=True,
        blank=True
    )
class Firm(models.Model):
    name = models.CharField(max_length=32)
    address = models.CharField(max_length=32)

我想做的是在公司视图中显示我的节点列表,这就是我尝试的方法:我创建了视图方法:

def firm_detail_view(request, id):
    object = Firm.objects.get(id=id)
    context = {
        'object': object,
        'nodes': Node.objects.filter(firm__id__=id)
    }
    return render(request, "node/firm_detail.html")

这是我的firm_detail页面:

{% extends 'base.html' %}
{% block content %}
    {{ object }}
    <h1>Firm: {{ object.name }}</h1>
    {{ nodes }}
    {% for instance in nodes %}
        <p>{{ instance.id }} - {{ instance.name }}</p>
    {% endfor %}
{% endblock %}

每当我打电话时,我都会收到此FieldError:

Unsupported lookup '' for AutoField or join on the field not permitted.

2 个答案:

答案 0 :(得分:0)

将Node.objects.filter(firm__id __ = id)更改为Node.objects.filter(firm__id = id),不需要在结尾加上下划线

答案 1 :(得分:0)

不需要结尾的下划线firm__id__-> firm__id。您也可以直接使用firm = object进行连接。