【问题标题】:cannot parse the list of objects from Many2one relation无法从 Many2one 关系中解析对象列表
【发布时间】:2018-12-24 13:59:01
【问题描述】:

我创建了 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")

这是我的公司详情页面:

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

每当我打电话时,我都会收到此字段错误:

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

【问题讨论】:

    标签: python-3.x django-2.0


    【解决方案1】:

    将 Node.objects.filter(firm__id__=id) 改为 Node.objects.filter(firm__id=id),后面的下划线就不需要了

    【讨论】:

      【解决方案2】:

      后面的下划线不需要firm__id__ ->firm__id。也可以直接使用firm=object 加入。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-11
        • 1970-01-01
        • 2018-12-15
        相关资源
        最近更新 更多