Django CustomField继承自模型.CharField意外的关键字argumen

2024-05-23 18:18:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序几乎不需要字段所需的属性,因此我按照代码创建了custom fields。你知道吗

这是我的CustomCharacterField:

class CustomCharField(models.CharField):
    def __int__(self, success_order=None, *args, **kwargs):
        self.success_order = success_order
        super(CustomCharField, self).__int__( *args, **kwargs)

    def get_success_order(self):
        return int(self.success_order)


    def deconstruct(self):
        name, path, args, kwargs = super(CustomCharField, self).deconstruct()
        del kwargs["success_order"]
        return name, path, args, kwargs

这是我的型号.py你知道吗

class NameModel(models.Model):

     name = fields.CustomCharField(max_length=250, unique=True, success_order=1)

以下是回溯:

 File "/home/kt/Documents/phc/phc/Forms/models.py", line 204, in <module>
   class SchemeModel(models.Model):
  File "/home/kt/Documents/phc/phc/Forms/models.py", line 220, in SchemeModel
    scheme_name = fields.CustomCharField(verbose_name="Scheme", max_length=250, unique=True, success_order=1)
  File "/usr/local/lib/python3.4/dist-packages/django/db/models/fields/__init__.py", line 1072, in __init__
    super(CharField, self).__init__(*args, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'success_order'

Tags: namepyselffieldsinitmodelsdefargs
2条回答

这是因为你传递论点的顺序。回溯显示success\u order正在传递给CharField的构造函数,而CharField的构造函数不应该被传递。这是因为它是通过夸尔格。改变顺序就可以了。unique=True将被CharField构造函数接受。你知道吗

我想你这里有个输入错误-def __int__应该是def __init__,而super(...).__int__(..)调用应该是super(...).__init__(..)。你知道吗

相关问题 更多 >