django restframework:为什么我在深度= 1的FK字段上得到non_field_errors?

时间:2014-03-21 00:26:41

标签: django django-rest-framework

使用django restframework进行API设置:

class Video(models.Model):
    title = models.CharField(max_length=250)
    encoding_job = models.ForeignKey(EncodingJob, blank=True, null=True)
    genres = models.ManyToManyField(Genre, blank=True, null=True)


router = DefaultRouter()
router.register(r'video', VideoViewSet)

class VideoViewSet(ModelViewSet):
    serializer_class = VideoSerializer
    queryset = Video.objects.all()

class VideoSerializer(ModelSerializer):
    class Meta:
        model = Video

工作正常,但我希望相关模型也被序列化,所以我添加了' depth = 1'或encoding_job =' EncodingJobSerializer()'到序列化器。

现在,当我在Browsable API上的视频对象列表中查看(GET请求)时,它在最后包含一个创建表单,它显示了' non_field_errors'低于FK / M2M字段输入。嵌套序列化工作正常。

screenshot of form below serialized records

有人可以解释我做错了什么吗?当它应该只显示一个空表格时,它似乎给了我表单验证错误。

Django 1.5.5

djangorestframework 2.3.13

0 个答案:

没有答案