擅长:python、mysql、java
<p>除了@aliva的答案中漏掉了<code>serializers.Modelserializer.create()</code>中的功能(这可能很好地保留,例如处理多对多关系),还有一种方法可以保留它。</p>
<p>通过使用<code>user.set_password()</code>方法,还可以正确设置密码,例如:</p>
<pre><code>class UserSerializer(serializers.ModelSerializer):
def create(self, validated_data):
user = super().create(validated_data)
user.set_password(validated_data['password'])
user.save()
return user
</code></pre>
<p>这样做的好处是保留了超级类的功能,但缺点是对数据库进行了额外的写操作。决定哪种取舍对你更重要。</p>
<p>编辑:修复语法错误</p>