Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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 rest框架中获得具有父模型foregin键的子模型?_Python_Django_Django Rest Framework - Fatal编程技术网

Python 如何在Django rest框架中获得具有父模型foregin键的子模型?

Python 如何在Django rest框架中获得具有父模型foregin键的子模型?,python,django,django-rest-framework,Python,Django,Django Rest Framework,现在我希望输出这样一种方式,即对于每个列表,我必须获得如何实现它的整个计时记录 下面是我的模型 model.py class Refreshment(models.Model): title = models.CharField(max_length=200, unique=True) charges = models.DecimalField(max_digits=12, decimal_places=2, help_text="Charges per hour")

现在我希望输出这样一种方式,即对于每个列表,我必须获得如何实现它的整个计时记录 下面是我的模型

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





class Timeing(models.Model):
    refreshment = models.OneToOneField(Refreshment,on_delete=models.CASCADE)
     sunday_open = models.TimeField(blank=True, editable=True)
下面是我的观点.py

@api_view()
def all_games_sports(request):
  entertainment = Refreshment.objects.filter(type=1)
  serialize = EntertainmentSerializer(instance=entertainment, many=True)
  main = {'status': True, 'code': "CODE_SUCCESSFUL", 'msg': "SUCCESS", 'all_games_sports': serialize.data}
  return Response(main)
序列化程序.py

class TimeingSerializer(serializers.ModelSerializer):
   class Meta:
      model = Timeing
      fields = '__all__'

class EntertainmentSerializer(serializers.ModelSerializer):
      refreshment =   TimeingSerializer(many=True,read_only=True)

  class Meta:
      model = Refreshment
      fields = '__all__'

AttributeError: Got AttributeError when attempting to get a value for    field `refreshment` on serializer `AvailableHourSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `Refreshment` instance.
Original exception text was: 'Refreshment' object has no attribute 'refreshment'.

您的代码抛出一个错误。应该这样。您定义了刷新,但未将其添加到字段中

class EntertainmentSerializer(serializers.ModelSerializer):
      refreshment =  TimeingSerializer(many=True,read_only=True)

      class Meta:
          model = Refreshment
          fields = '__all__' #You have not added refreshment to fields.
您应该这样做:

class EntertainmentSerializer(serializers.ModelSerializer):
      timeing =   TimeingSerializer(many=True,read_only=True)

      class Meta:
          model = Refreshment
          fields = '__all__'

您应该在
娱乐序列化程序中处理这些问题。同时发布已编辑的
EntertainmentSerializer
的代码。请查看您当前代码的结果,以及您希望它是什么?出现错误。如何更新问题底部的错误