Python 如何在django rest框架中访问父模型中的子完整记录

Python 如何在django rest框架中访问父模型中的子完整记录,python,django,django-rest-framework,django-serializer,Python,Django,Django Rest Framework,Django Serializer,我是Django rest框架的新手。我正在尝试将子模型记录作为字段发送到父模型,以便所有RefreshmentImage模型记录都可以在games_sports list中找到。我已经发布了示例代码 model.py class Refreshment(models.Model): title = models.CharField(max_length=200, unique=True) type = models.CharField(max_length=200) c

我是Django rest框架的新手。我正在尝试将子模型记录作为字段发送到父模型,以便所有RefreshmentImage模型记录都可以在games_sports list中找到。我已经发布了示例代码

model.py

class Refreshment(models.Model):
    title = models.CharField(max_length=200, unique=True)
    type = models.CharField(max_length=200)
    charges = models.DecimalField(max_digits=12, decimal_places=2, help_text="Charges per hour")


class RefreshmentImage(models.Model):
    refreshment = models.ForeignKey(Refreshment, on_delete=models.CASCADE)
    image = models.FileField(upload_to="refreshment_image/", null=True, blank=True)
序列化程序.py

class EntertainmentSerializer(serializers.ModelSerializer):
     class Meta:
          model = Refreshment
          fields = '__all__'

  class RefreshmentImageSerializer(serializers.ModelSerializer):
        refreshment = EntertainmentSerializer(read_only=True, many=True)
        class Meta:
              model = RefreshmentImage
              fields = '__all__'
views.py

def all_games_sports(request):
   entertainment = Refreshment.objects.all()
   serialize = EntertainmentSerializer(instance=entertainment,many=True)
   serial = RefreshmentImageSerializer(instance=entertainment,many=True)
   main = {'status': True, 'code': CODE_SUCCESSFUL, 'msg': SUCCESS, 'games_sports': serialize.data,'image':serial.data}
   return HttpResponse(json.dumps(main), content_type='application/json')
我得到的是:

games_sports": [
    {
        "id": 1,
        "title": "yyy",
        "type": 1,
        "charges": "500.00",
    },
    {
        "id": 2,
        "title": "xxxxx",
        "type": "something",
        "charges": "501.00",
    }
     *******
    ],
 "image": [
    {
        "id": 1,
        "image": null,
        "date_created": "2019-03-03T08:16:15.538024+05:30"
    },
    **********
  ]
我希望它是:

games_sports": [
{
    "id": 1,
    "title": "yyy",
    "type": 1,
    "charges": "500.00",
    "image": [
             {
             "id": 1,
              "image": image_path,
              "date_created": "2019-03-03T08:16:15.538024+05:30"
          },

}
 ***********
],
试试这个片段


#serializers.py
"""I've re-arranged the order of 'RefreshmentImageSerializer' serializer and 'EntertainmentSerializer' serializer"""
class RefreshmentImageSerializer(serializers.ModelSerializer):
    class Meta:
        model = RefreshmentImage
        fields = '__all__'


class EntertainmentSerializer(serializers.ModelSerializer):
    image = RefreshmentImageSerializer(many=True, source='refreshmentimage_set')

    class Meta:
        model = Refreshment
        fields = '__all__'

# views.py
"""Added DRF stuffs such as 'api_view' and 'Response'"""
from rest_framework.decorators import api_view


@api_view()
def all_games_sports(request):
    entertainment = Refreshment.objects.all()
    serialize = EntertainmentSerializer(instance=entertainment, many=True)
    main = {'status': True, 'code': "CODE_SUCCESSFUL", 'msg': "SUCCESS", 'games_sports': serialize.data}
    return Response(main)

完美答案!!假设我想再通过一个模型。有一个2给家长如何通过?