【发布时间】:2017-05-18 14:15:34
【问题描述】:
在 djangosn-ps 我找到了一个 IntegerRangeField 的示例 (https://djangosnippets.org/snippets/3016/)
from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models
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
validators = []
if isinstance(max_value, int):
validators.append(MaxValueValidator(max_value))
if isinstance(min_value, int):
validators.append(MinValueValidator(min_value))
models.IntegerField.__init__(
self,
verbose_name,
name,
validators=validators,
**kwargs
)
def formfield(self, **kwargs):
defaults = {'min_value': self.min_value, 'max_value':self.max_value}
defaults.update(kwargs)
return super(IntegerRangeField, self).formfield(**defaults)
我的模特:
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'
知道代码有什么问题吗? 谢谢!
【问题讨论】:
-
请缩进你的代码
标签: python django validation django-migrations