我创建了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.
答案 0 :(得分:0)
将Node.objects.filter(firm__id __ = id)更改为Node.objects.filter(firm__id = id),不需要在结尾加上下划线
答案 1 :(得分:0)
不需要结尾的下划线firm__id__-> firm__id。您也可以直接使用firm = object进行连接。