我有以下问题:
为什么密码没有被散列?
为什么save_password没有设置密码?
platforms = Platform.objects.all()
platforms[2].is_active
>> True
platforms[2].password
>> 'efgh'
platforms[2].check_password("efgh")
>> False
platforms[2].set_password("abcd")
platforms[2].save()
platforms[2].check_password("abcd")
>> False
platforms[2].password
>> 'efgh'
models.py
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
class Platform(AbstractUser):
pass
serializers.py
class PlatformSerializer(serializers.ModelSerializer):
class Meta:
model = Platform
fields = ("username", "password")
def create(self, validated_data):
password = validated_data.pop('password')
platform = Platform(**validated_data)
platform.set_password(password)
platform.save()
return platform
views.py
class CreatePlatform(viewsets.ModelViewSet):
queryset = Platform.objects.all()
serializer_class = PlatformSerializer
pagination_class = None
permission_classes = (AllowAny, )
在我的 settings.py 中,我有AUTH_USER_MODEL = 'users.Platform'
PS:创建的令牌正常
答案 0 :(得分:4)
p = platforms[2]
p.set_password("abcd")
p.save()
p.check_password("abcd")
>> True