Python 重写';创建';Django REST框架中的方法。设置多个字段
全部。 我在ModelSerializer中覆盖的“create”方法存在一些问题。顺便说一下,我的模型:Python 重写';创建';Django REST框架中的方法。设置多个字段,python,django,django-rest-framework,Python,Django,Django Rest Framework,全部。 我在ModelSerializer中覆盖的“create”方法存在一些问题。顺便说一下,我的模型: class User(AbstractEmailUser): target_languages = models.ManyToManyField(Language, default='en', related_name="target_language") biography = models.TextField(null=True, blank=True) loc
class User(AbstractEmailUser):
target_languages = models.ManyToManyField(Language, default='en', related_name="target_language")
biography = models.TextField(null=True, blank=True)
location = models.CharField(max_length=2, null=True)
objects = UserManager()
和我的序列化程序:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
exclude = ['password', 'groups', 'user_permissions', 'is_superuser',
'is_staff']
read_only_fields = ['date_joined', 'last_login']
def create(self, validated_data):
target_languages = validated_data.pop('target_languages')
user = User.objects.create(**validated_data)
for target_language in target_languages:
user.target_languages.add(get_object_or_404(Language, iso_639_1=target_language))
user.save()
return user
主要问题是,当我试图使用target_languages字段(如target_languages)发布到这个序列化程序时:[“en”,“es”]
它没有设置manytomy字段,它只是空的
我哪里出错了?您发送的JSON看起来如何?GET请求的结果如何?您发送的JSON看起来如何?GET请求的结果如何?