我找不到问题请帮忙
我也用自定义模型尝试过这个没有用。 如您所见,我正在尝试执行 PUT、DELETE 和 GET 操作。
错误信息
<块引用>异常类型:TypeError at /api/user/sagar/Exception Value: unhashable 类型:'list'
views.py
class ProfileApiView(generics.RetrieveUpdateDestroyAPIView):
serializer_class = serializer.RegisterUserSerializer
permission_classes = [IsAuthenticated, ]
lookup_field = ['username']
def get_queryset(self):
return User.objects.filter(username=self.request.user)
serializer.py
class RegisterUserSerializer(serializers.ModelSerializer):
email = serializers.EmailField(required=True, validators=[
UniqueValidator(queryset=User.objects.all())])
username = serializers.CharField(required=True, validators=[
UniqueValidator(queryset=User.objects.all())])
password = serializers.CharField(
write_only=True, required=True, validators=[validate_password])
class Meta:
model = User
fields = ['email', 'username', 'password']
def create(self, validated_data):
user = User.objects.create(
email=validated_data['email'],
username=validated_data['username']
)
user.set_password(validated_data['password'])
user.save()
return user
答案 0 :(得分:2)
lookup_field
- 应该用于执行单个模型实例的对象查找的模型字段。默认为“pk”。
它需要一个字段(作为字符串)而不是一个列表。
所以替换:
lookup_field = ['username']
由
lookup_field = 'username'