Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用django返回多个相关模型_Python_Json_Django_Django Models - Fatal编程技术网

Python 使用django返回多个相关模型

Python 使用django返回多个相关模型,python,json,django,django-models,Python,Json,Django,Django Models,我正在使用django构建一个API,我想将这些模型作为JSON返回。问题是当我返回房间对象时,表不在JSON中。我怎样才能序列化一个房间,并用它序列化桌子 这是我连续整理房间的方式: class Room (models.Model): restaurant = models.ForeignKey(Restaurant,verbose_name='Restaurant', on_delete=models.CASCADE) room_name = models.CharFiel

我正在使用django构建一个API,我想将这些模型作为JSON返回。问题是当我返回房间对象时,表不在JSON中。我怎样才能序列化一个房间,并用它序列化桌子

这是我连续整理房间的方式:

class Room (models.Model):
    restaurant = models.ForeignKey(Restaurant,verbose_name='Restaurant', on_delete=models.CASCADE)
    room_name = models.CharField(max_length=50,verbose_name='Room Name')
    def __str__(self):
        return self.room_name

class Table (models.Model):
    room = models.ForeignKey(Room,on_delete=models.CASCADE)
    capacity = models.IntegerField()
    name = models.CharField(max_length=30,verbose_name='Table Name')

    def __str__(self):
        return self.room.room_name + ': ' + self.name

问题是没有包含反向关系。

您是如何序列化模型的?我将编辑问题可能与之重复,该问题用于解析对象的键。这是为了在序列化时包含嵌套对象。我相信默认的django序列化程序不会这样做(我希望得到纠正)。您可能需要自己编写或使用另一个。我个人喜欢django rest框架中的一个。
rooms = Room.objects.filter(restaurant=id)
return HttpResponse(serializers.serialize("json", rooms))