问题描述
当我向数据库添加数据时,无法添加,出现如下问题提示
django.db.utils.IntegrityError: (1048, "Column 'category_id' cannot be null")
pymysql.err.IntegrityError: (1048, "Column 'category_id' cannot be null")
两个问题等同的
解决办法1
原因可能是序列化对象中未定义category_字段
所在在ArticleSerializer添加如下代码
category_id = serializers.IntegerField()
最后插入成功
class ArticleSerializer(serializers.ModelSerializer):
category_txt = serializers.CharField(source='category.name', required=False)
status_code = serializers.SerializerMethodField()
category_id = serializers.IntegerField()
class Meta:
model = models.Article
fields = ['id', 'title', 'summary', 'content', 'category_txt', 'status_code', 'category_id']
def get_status_code(self, obj):
return obj.get_status_display()
解决办法2
重新定义一个fields为all的序列化类
class NewArticleSerializer(serializers.ModelSerializer):
class Meta:
model = models.Article
fields = '__all__