我在Django新DRF和我试图通过创建POST请求的新用户通过创建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包含在request body中,这样它们就包含在'validated_data'中。 – fips
你的屏幕截图似乎是可疑的,因为它看起来不是发布数据,而是将它们作为URL参数传递。打开浏览器的开发工具并查看请求发布的数据,以确保数据确实发布在HTTP正文中,而不是发布到网址中。 – Linovia