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

问题描述 投票:0回答:1

我需要结果上的两个字段:标题,出版物,标题 我需要回归所有领域。但它只返回标题,我加入了父母和子表的出版物。但是我无法获得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')
django python-3.x django-models django-rest-framework
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.