ModelSerializer外键反序列化的问题

来源:9-4 用户个人信息修改

qq_且歌且行_4

2019-06-01

老师 在使用 ModelSerializer的时候,

class Category(models.Model)
	name = models.CharField()

class Book(models.Model):
	name = models.CharField()
	category = models.ForeignKey('category',on_delete=models.PROTECT, related_name="book_cate")

class CategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = Category
        fields = '__all__'

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = '__all__'

大概是这样,现在前端创建Book的时候 传来的是category 的主键,也就是int类型的ID,
问题是在serializer.is_valid验证的时候说要传一个字典,不能传一个int型的数字,如果不单独写一个创建book的序列化器,或者不另外增加别的验证字段,有什么办法验证通过。category这个字段名最好不要改。

写回答

1回答

bobby

2019-06-03

其实这种你可以通过drf自带的创建页面测试。然后在后端打个断点然后看看drf自带的文档功能这个外键是否是id,因为这里传id是可以的,是否传的id的值不存在呢?

1
2
bobby
回复
qq_且歌且行_4
好的,
2019-06-05
共2条回复

Python前后端分离开发Vue+Django REST framework实战

Django REST framework课程视频,RESTFul API前后端分离开发

2873 学习 · 2457 问题

查看课程