class SourceSerializer(serializers.ModelSerializer):
def validate_name(self, value):
if'草'in value:
raise ValidationError('不符合社会主义核心价值观')
return value
class Meta:
model = models.Source
fields = "__all__"
视图:
路由:
class CommentSerializer(serializers.ModelSerializer):
class Meta:
model = models.Comment
fields = "__all__"
extra_kwargs = {
"content": {"error_messages": {"required": "评论内容不能为空"}},
"article": {"error_messages": {"required": "文章不能为空"}}
}
视图:
路由:
class TagSerializer(serializers.ModelSerializer):
class Meta:
model = models.Tag
fields = "__all__"class ArticleSerializer(serializers.ModelSerializer):
type = serializers.CharField(source="get_type_display")
tag = TagSerializer(many=True)
class Meta:
model = models.Article
fields = ["id", "title", "type", "source", "tag"]
class ArticleWriteSerializer(serializers.ModelSerializer):
class Meta:
model = models.Article
fields = "__all__"
extra_kwargs = {
"tag": {
"error_messages": {
"does_not_exist": '"{pk_value}"对应的tag对象不存在。'
}
}
}
视图:
路由:
class ArticleHyperlinkedSerializer(serializers.HyperlinkedModelSerializer):
source = serializers.HyperlinkedIdentityField(view_name='source-detail', lookup_field='source_id', lookup_url_kwarg='pk')
class Meta:
model = models.Article
fields = ["id", "type", "title", "source"]
depth = 1