我有三个模特的博客,贴,标签。在我的博客里有很多的标签和标签。在
在模型.py公司名称:
class Posted(models.Model):
name = models.CharField(_('Posted In'),max_length=255, unique=True)
class Tags(models.Model):
name = models.CharField(_('Tag Name'),max_length=255, unique=True)
class Blogs(models.Model):
author = models.ForeignKey(CustomUser)
title=models.CharField(max_length=100)
postedin=models.ForeignKey(Posted)
tags= models.ManyToManyField(Tags)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
在视图.py公司名称:
^{pr2}$在序列化程序.py公司名称:
class TagsSerializer(serializers.ModelSerializer):
class Meta:
model = Tags
fields = ('pk','name')
read_only_fields=('pk','name')
class PostedSerializer(serializers.ModelSerializer):
class Meta:
model = Posted
fields = ('pk','name')
read_only_fields=('pk','name')
class BlogsSerializer(serializers.ModelSerializer):
author = AccountSerializer(read_only=True,required=False)
tags=TagsSerializer(read_only=True,many=True)
tags_id = serializers.PrimaryKeyRelatedField(queryset=Tags.objects.all(), write_only=True)
postedin = PostedSerializer(read_only=True)
postedin_id = serializers.PrimaryKeyRelatedField(queryset=Posted.objects.all(), write_only=True)
class Meta:
model = Blogs
fields = ('pk','author','title','tags','tags_id','postedin','postedin_id','content','created_at','updated_at')
read_only_fields=('pk','created_at','updated_at')
def get_validation_exclusions(self, *args, **kwargs):
exclusions = super(BlogsSerializer, self).get_validation_exclusions()
return exclusions + ['author']
def create(self, validated_data):
postedin = validated_data.pop('postedin_id')
tags = validated_data.pop('tags_id')
blogs = Blogs.objects.create(tags=tags,postedin=postedin, **validated_data)
return blogs
请求已发送:
{标题:“nvnbv”,发布id:“1”,标签编号:[“2”,“5”,“1”,“4”],内容:“nmvmvjm”}
响应接收:
{tags_id:[”类型不正确。预期的pk值,已收到列表。“]}
我是Django rest的初学者-框架。如何来解决这个错误。在
提前谢谢!在
谢谢@Abdulafaja的建议。在
最后我找到了解决办法
BlogsSerializer应该是
相关问题 更多 >
编程相关推荐