Django Join-我需要父母和孩子表的所有字段

时间:2019-04-19 13:51:24

标签: django python-3.x django-models django-rest-framework

结果上我需要两个字段:标题,出版物,标题
我需要返回所有字段。但是它只返回标题,我加入了Parent和child表的出版物。但是我无法获得子表字段。我需要两个表字段。

  

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')

1 个答案:

答案 0 :(得分:0)

您可以在模型中看到,Car没有字段manufacturersManufactures与汽车有m2m关系。不确定为什么一辆汽车应该有很多制造商,但是很好。您应该做的是在发布字段中添加一个related_name=manufactures参数。这样,您就可以与汽车和制造商建立反向关系,然后您的过滤器就可以工作了。但是请认真考虑一下您的逻辑(理想情况下,Car应该具有制造商的外键),并且还应使用单数名词为模型命名(制造商而不是制造商)