【发布时间】:2019-08-02 23:27:34
【问题描述】:
这是我的代码:
模型.py
class Kitchen(models.Model):
kitchen_name = models.CharField(max_length = 100)
state = models.CharField(max_length = 40, )
city = models.CharField(max_length = 40)
def __str__(self):
return self.kitchen_name
class AssignAudit(models.Model):
kitchen = models.ForeignKey(Kitchen, on_delete = models.SET_NULL, null = True)
assigned_date = models.DateTimeField(default = timezone.now)
assigned_by = models.ForeignKey(User, on_delete = models.SET_NULL, null = True, related_name = 'assigned_audits')
class KitchenAudit(models.Model):
assign_audit = models.ForeignKey(AssignAudit, on_delete = models.SET_NULL, null = True)
question = models.ForeignKey(Question, on_delete = models.SET_NULL, null = True)
total_images = models.IntegerField(null = True, blank = True)
marks_scored = models.IntegerField(null=True,blank=True)
comment = models.CharField(max_length = 300, null = True, blank = True)
序列化器.py
class KitchenSerializer(serializers.ModelSerializer):
class Meta:
model = Kitchen
fields = '__all__'
class AssignAuditSerializer(serializers.ModelSerializer):
kitchen = KitchenSerializer()
class Meta:
model = AssignAudit
fields = '__all__'
def create(self, validated_data):
assign_audit = AssignAudit.objects.create(**validated_data)
questions = Question.objects.all()
for question in questions:
kitchen_audit = KitchenAudit.objects.create(question=question,assign_audit=assign_audit)
for images in range(question.no_of_images):
KitchenAuditImage.objects.create(kitchen_audit=kitchen_audit)
return assign_audit
Views.py
class AssignAuditSerializerListCreate(ListCreateAPIView):
serializer_class = AssignAuditSerializer
queryset = AssignAudit.objects.all()
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(queryset, many=True)
return Response({'audit_assign':serializer.data})
我想使用 django-rest-framework 将上面的两个表格合并到一个 API 中。 GET 方法工作正常,但是当我使用 POST 方法时,它说我必须提供厨房价值。
{
"kitchen": [
"This field is required."
]
}
【问题讨论】:
-
能否请您也发布 KitchenAudit 模型?
-
嗨@matthieu.cham。我已经编辑了这个问题。请参考
标签: python django api django-rest-framework serialization