Python django 1.11自定义范围字段的makemigration错误

Python django 1.11自定义范围字段的makemigration错误,python,django,validation,django-migrations,Python,Django,Validation,Django Migrations,在djangosnippets中,我找到了一个integragerAfield()的示例 我的模型: class MyModel (models.Model): ..... automatic_logout_value = IntegerRangeField (min_value=5, max_value=1440, blank=True, null=True, default=30) 启动“python mana

在djangosnippets中,我找到了一个integragerAfield()的示例

我的模型:

class MyModel (models.Model):
    .....
    automatic_logout_value = IntegerRangeField (min_value=5, max_value=1440, 
                               blank=True, null=True, default=30)
启动“python manage.py makemigrations”后,我得到了错误:

c:\python34\lib\site-packages\django\db\migrations\state.py line 437, in from_model 
e,
TypeError: Couldn't reconstruct field automatic_logout_value on myApp.myModel:
__init__ () got multiple values for keyword 'validators'
知道密码有什么问题吗?
谢谢

您必须从
kwargs
中弹出
验证程序。默认情况下,它是一个元组,因此需要将其转换为列表,以便可以附加项

def __init__(self, verbose_name=None, name=None, min_value=None, max_value=None, **kwargs):
    self.min_value, self.max_value = min_value, max_value
    validators = list(kwargs.pop('validators'))
    ...

你能试试这段代码吗?希望这能帮助你缩进代码
def __init__(self, verbose_name=None, name=None, min_value=None, max_value=None, **kwargs):
    self.min_value, self.max_value = min_value, max_value
    validators = list(kwargs.pop('validators'))
    ...
class IntegerRangeField(models.IntegerField):
    def __init__(self, verbose_name=None, name=None, min_value=None, max_value=None, **kwargs):
        self.min_value, self.max_value = min_value, max_value
        models.IntegerField.__init__(self, *args, **kwargs)
        if isinstance(max_value, int):
            self.validators.append(MaxValueValidator(max_value))
        if isinstance(min_value, int):
            self.validators.append(MinValueValidator(min_value))