2
我有我的django-rest-server
TokenAuthentification。 注册后login
完美地工作,但是当我用旧字段调用更新时,我无法再登录(无法使用提供的凭证登录)作为响应。我究竟做错了什么?Django无法登录后登录
更新代码:
class ClientSerializer(serializers.ModelSerializer):
username = serializers.CharField(source='user.username')
first_name = serializers.CharField(source='user.first_name')
last_name = serializers.CharField(source='user.last_name')
email = serializers.CharField(source='user.email')
password = serializers.CharField(source='user.password')
profile_photo = serializers.ImageField(source='details_sample.profile_photo', required=False)
class Meta:
model = Client
fields = ('id', 'username', 'first_name', 'last_name', 'email', 'password', 'profile_photo', 'phone')
def update(self, instance, validated_data):
if validated_data.get('user') is not None:
instance.user.set_password(validated_data['user'].get('password', instance.user.password))
instance.username = validated_data['user'].get('username', instance.user.password)
instance.first_name = validated_data['user'].get('first_name', instance.user.password)
instance.last_name = validated_data['user'].get('last_name', instance.user.password)
instance.user.save()
instance.phone = validated_data.get('phone', instance.phone)
instance.save()
return instance
登录网址:
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
令牌创建:
@receiver(post_init, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
你是什么意思不能再登录了? –
@ArpitSolanki补充说。 “无法使用提供的凭据登录。”作为回应。但用户名和密码确实无误。 –