Django加入 - 我需要父母和子桌的所有领域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django加入 - 我需要父母和子桌的所有领域相关的知识,希望对你有一定的参考价值。

我需要结果上的两个字段:标题,出版物,标题 我需要回归所有领域。但它只返回标题,我加入了父母和子表的出版物。但是我无法获得Child table Fields。我需要一个两个表字段。

django.core.exceptions.FieldError:无法将关键字“标题”解析为字段。选择是:id,制造商,标题

class Car(models.Model):
  title = models.CharField(max_length=30)

        class Meta:
            ordering = ('title',)

        def __str__(self):
            return self.title

class Manufactures(models.Model):
    headline = models.CharField(max_length=100)
    publications = models.ManyToManyField(Car)

    class Meta:
        ordering = ('headline',)

     Car.objects.filter(manufactures__headline__startswith="Title").values('title')
答案

正如你在模型中看到的那样,Car没有字段manufacturers。然而,Manufactures与汽车有m2m关系。不知道为什么一辆车应该有很多制造商,但很好。你应该做的是在publication字段中添加一个related_name=manufactures参数。通过这种方式,您可以建立从汽车到制造商的反向关系,然后您的过滤器就可以运行。但严重的是你应该考虑你的逻辑(理想情况下,汽车应该有制造商的外键),并使用单数名词来命名你的模型(制造商而不是制造商)

以上是关于Django加入 - 我需要父母和子桌的所有领域的主要内容,如果未能解决你的问题,请参考以下文章

Pathlib - 加入n个父母

父子链的外连接

Django - 从父母那里查询许多FK模型

Django,类别和子类别

父进程和子进程关系

在一个查询中保存父级和子级(子级对父级有空值引用)