【发布时间】:2017-07-23 14:51:45
【问题描述】:
我是 Django 和 DRF 的新手,我正在尝试通过 POST 请求创建一个新用户。我发送用户名和密码参数,但 django 无法识别 POST 请求中的参数。
我的序列化器:
class UserSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True)
def create(self, validated_data):
user=get_user_model().objects.create(
username = validated_data['username']
)
user.set_password(validated_data['password'])
user.save()
return user
class Meta:
model = get_user_model()
fields = ('username', 'password')
我的视图类:
class CreateUserView(CreateAPIView):
model = get_user_model()
permission_classes = (AllowAny,)
serializer_class = UserSerializer
我尝试使用 serializers.ModelSerializer 和 serializer.Serializers 但没有成功。
【问题讨论】:
-
您正在将参数添加到查询字符串中,因此它们应该可以从
request.GET访问。相反,将它们作为 json 包含在请求正文中,因此它们包含在validated_data中。 -
您的屏幕截图看起来很可疑,因为它看起来不是在发布数据,而是将它们作为 url 参数传递。打开浏览器的开发工具并查看请求发布的数据,以确保数据确实发布在 HTTP 正文中,而不是在 url 中。
标签: python django django-rest-framework