Django模型:具有参考外键的属性未出现在ListApiView

时间:2019-11-26 13:56:56

标签: django-models django-views

我在这上面绊了好几天,但无法正常工作。我有一个样板酒店,其中有对Trip模型的一对多引用:

models.py

class Hotel(models.Model):
    # Relate the hotel service to its Trip
    trip = models.ForeignKey(Trip, related_name='hotels', on_delete=models.CASCADE, blank=True, null=True)
    name = models.CharField(max_length=100)

class Trip(models.Model):
    title = models.CharField(max_length=300, unique=True, help_text="The name of the trip",)

    def __str__(self):
        return '%s' % (self.title)

这意味着每次旅行都应包含酒店列表,并且每个酒店应仅属于一次旅行。我在酒店对象中使用“酒店”作为相关名称,这意味着旅行对象应自动具有属性“酒店”。现在,我试图将所有带有相应属性的旅程带到前端:

views.py

class TripList(generics.ListAPIView):
   """
   A list of all trips, read-only
   """
   # queryset = Trip.objects.all()
   serializer_class = TripSerializer
   queryset = Trip.objects.all()  

我能够使用Django模板引擎按给定行程获取酒店,但我对前端使用了React,并且在ListApiView中,行程对象中缺少hotels属性。如何获取ListApiView中的数据?

1 个答案:

答案 0 :(得分:0)

好的,问题似乎出在数据序列化上。我正在使用fields =' all '来序列化Trip模型中的所有字段:

override func viewDidLoad() {
    super.viewDidLoad()

    camera.photoDelegate = self
}

但是,对于通过相关名称方法传递的数据,它不能像这样工作。我要做的就是将上面的代码替换为:

fields = '__all__'

此后,ListApiView最终显示了带有属性“酒店”的旅行模型

相关问题