【发布时间】:2015-02-19 13:44:52
【问题描述】:
我正在使用 Django REST 框架 (DRF) 创建一个可以注册新用户的端点。但是,当我使用 POST 访问创建端点时,新用户将通过序列化程序保存,但密码以明文形式保存在数据库中。我的序列化器的代码如下:
from django.contrib.auth import get_user_model
from rest_framework import serializers
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = get_user_model()
fields = ['password', 'username', 'first_name', 'last_name', 'email']
read_only_fields = ['is_staff', 'is_superuser']
write_only_fields = ['password']
请注意,我使用的是 Django auth 包中的默认用户模型,而且我对使用 DRF 非常陌生!此外,我发现 this question 提供了一个解决方案,但这似乎需要两次数据库交互——我不认为这是有效的,但这可能是我的错误假设。
【问题讨论】:
-
这是另一个覆盖
perform_create和perform_update的解决方案:stackoverflow.com/questions/27468552/…
标签: python django django-rest-framework