Django小bug解决集

Django 小bug解决集

  1. 序列化器返回对象属性问题

django.core.exceptions.ImproperlyConfigured: Field name “token” is not valid for model “User”
在使用django序列化器时,当需要在返回的模型类对象添加相应属性,且不需要保存至数据库时,需要在返回对象调用save()方法保存至数据库之后,为对象添加属性,以下用jwt token进行举例

    def create(self, validated_data):
        del validated_data['sms_code']
        del validated_data['password2']
        del validated_data['allow']
        user = super(UserSerializer, self).create(validated_data)
        user.set_password(validated_data['password'])
        user.save()
        jwt_payload = api_settings.JWT_PAYLOAD_HANDLER
        jwt_encode = api_settings.JWT_ENCODE_HANDLER
        payload = jwt_payload(user)
        token = jwt_encode(payload)
        user.token = token

        return user

在调用save()方法后,为对象添加token属性,所以序列化器也需要添加read_only的序列化字段

class UserSerializer(seri
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值