无法调用 `.is_valid()`,因为在实例化序列化器实例时没有传递 `data=` 关键字参数

不是塞拉姆

我真的被困在正在发生的事情上。基本上,我想让用户更改他的电话号码。他只需要输入他当前的密码和一个新的电话号码。我想将用户传递给 init 函数,以便在此过程中可以验证他的当前密码。但它给了我上面的错误信息。

我的 serializers.py 是:

class ChangePhoneSerializer(serializers.Serializer):
'''
Change my phone number
'''
password_current=serializers.CharField(max_length=16,allow_blank=False,required=True)
new_phone=serializers.CharField(max_length=13,required=True,allow_blank=False)

def __init__(self,*args,**kwargs):
    self.user=kwargs.pop('user')


def validate(self,data):
    phone=data['new_phone']
    pwd_current=data['password_current']

    errmsg=''
    if not pwd_current:
        errmsg=str(_('Current password must be given'))
    else:
        if not self.user.check_password(pwd_current):
            errmsg=_('Current password is incorrect')


    if errmsg:
        raise serializers.ValidationError(errmsg)

    return data

在我的 views.py 中:

    data=request.data
    serializer=ChangePhoneSerializer(user=request.user,data=data)
    if serializer.is_valid():
      #do stuff to change the phone

但它给了我上述错误。当我不使用序列化程序时,它工作正常。

克恩布克

super()在你的__init__()方法中缺少一个调用

def __init__(self, *args, **kwargs):
    self.user = kwargs.pop('user')
    super(ChangePhoneSerializer, self).__init__(*args, **kwargs)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

django-rest-framework:不能调用`.is_valid()`,因为在实例化序列化程序实例时未传递`data =`关键字参数

来自分类Dev

调用带有关键字参数的方法

来自分类Dev

Xarray:使用`data`关键字参数时出错:DataSet.copy()得到一个意外的关键字参数'data'

来自分类Dev

如何获取传递给函数调用的关键字参数的原始顺序?

来自分类Dev

在方法调用中通过位置和关键字传递参数“算法”

来自分类Dev

在robotframework中调用关键字时如何限制预定义的参数值

来自分类Dev

是否有不能使用关键字参数调用的内置函数的完整列表?

来自分类Dev

实例化类型时的关键字参数

来自分类Dev

不可知地检查unittest.mock调用参数是否将其作为位置参数或关键字参数传递

来自分类Dev

NoReverseMatch:关键字参数未传递

来自分类Dev

关键字参数匹配时找不到带有关键字参数的NoReverseMatch

来自分类Dev

使用inout关键字:是通过引用传递或通过复制输入复制输出的参数(/按值结果调用)

来自分类Dev

装饰器:TypeError:“在函数调用中获得了关键字参数<变量名称>的多个值”

来自分类Dev

BERT调用函数中的关键字参数

来自分类Dev

为什么在调用函数时使用`go`关键字?

来自分类Dev

TypeError :(“关键字参数无法理解:”,“ inputs”)

来自分类Dev

TypeError :(“关键字参数无法理解:”,“组”)

来自分类Dev

JSON 包含 sql 关键字时无法获取结果

来自分类Dev

无法序列化“ TickDataDefinition.data”类型,因为它没有任何可序列化的字段或属性

来自分类Dev

带有const关键字的代码无法编译

来自分类Dev

使用 IN 关键字 c# 参数化查询

来自分类Dev

传递带有包含关键字字符串的变量的关键字参数

来自分类Dev

将哈希传递给接受关键字参数的函数

来自分类Dev

如何确定传递的关键字参数的顺序?

来自分类Dev

如果条件为真,则传递关键字参数

来自分类Dev

分配参数时,关键字不能是表达式

来自分类Dev

matplotlib`hold`关键字参数有什么作用?

来自分类Dev

带有参考类型参数的ref关键字

来自分类Dev

函数中带有*&参数的常量关键字。

Related 相关文章

  1. 1

    django-rest-framework:不能调用`.is_valid()`,因为在实例化序列化程序实例时未传递`data =`关键字参数

  2. 2

    调用带有关键字参数的方法

  3. 3

    Xarray:使用`data`关键字参数时出错:DataSet.copy()得到一个意外的关键字参数'data'

  4. 4

    如何获取传递给函数调用的关键字参数的原始顺序?

  5. 5

    在方法调用中通过位置和关键字传递参数“算法”

  6. 6

    在robotframework中调用关键字时如何限制预定义的参数值

  7. 7

    是否有不能使用关键字参数调用的内置函数的完整列表?

  8. 8

    实例化类型时的关键字参数

  9. 9

    不可知地检查unittest.mock调用参数是否将其作为位置参数或关键字参数传递

  10. 10

    NoReverseMatch:关键字参数未传递

  11. 11

    关键字参数匹配时找不到带有关键字参数的NoReverseMatch

  12. 12

    使用inout关键字:是通过引用传递或通过复制输入复制输出的参数(/按值结果调用)

  13. 13

    装饰器:TypeError:“在函数调用中获得了关键字参数<变量名称>的多个值”

  14. 14

    BERT调用函数中的关键字参数

  15. 15

    为什么在调用函数时使用`go`关键字?

  16. 16

    TypeError :(“关键字参数无法理解:”,“ inputs”)

  17. 17

    TypeError :(“关键字参数无法理解:”,“组”)

  18. 18

    JSON 包含 sql 关键字时无法获取结果

  19. 19

    无法序列化“ TickDataDefinition.data”类型,因为它没有任何可序列化的字段或属性

  20. 20

    带有const关键字的代码无法编译

  21. 21

    使用 IN 关键字 c# 参数化查询

  22. 22

    传递带有包含关键字字符串的变量的关键字参数

  23. 23

    将哈希传递给接受关键字参数的函数

  24. 24

    如何确定传递的关键字参数的顺序?

  25. 25

    如果条件为真,则传递关键字参数

  26. 26

    分配参数时,关键字不能是表达式

  27. 27

    matplotlib`hold`关键字参数有什么作用?

  28. 28

    带有参考类型参数的ref关键字

  29. 29

    函数中带有*&参数的常量关键字。

热门标签

归档