首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django中MaxValueValidator在IntegerField中的模式迁移causesTypeError

django中MaxValueValidator在IntegerField中的模式迁移causesTypeError
EN

Stack Overflow用户
提问于 2012-11-28 15:49:37
回答 1查看 176关注 0票数 0

我在我的模型上尝试了schemamigration和south (我正在使用django 1.4 and python 2.6 on ubuntu)

最初我的模型是

代码语言:javascript
复制
class Review(models.Model):
    reviewdate=models.DateField(default=date.today)
    description=models.TextField()
    author=models.ForeignKey(User,null=True)

我添加了一个字段

代码语言:javascript
复制
from django.core.validators import MinValueValidator,MaxValueValidator

class Review(models.Model):
    reviewdate=models.DateField(default=date.today)
    description=models.TextField()
    author=models.ForeignKey(User,null=True)
    rating = models.IntegerField(MinValueValidator(1),MaxValueValidator(10),default=5,help_text='integers 1 to 10')

当我跑的时候

代码语言:javascript
复制
python manage.py schemamigration myapp --auto

我得到了这个TypeError

代码语言:javascript
复制
...
File "/home/me/Django-1.4/django/db/models/base.py", line 198, in __new__
    new_class._prepare()
  File "/home/me/Django-1.4/django/db/models/base.py", line 255, in _prepare
    cls.__doc__ = "%s(%s)" % (cls.__name__, ", ".join([f.attname for f in opts.fields]))
TypeError: Error when calling the metaclass bases
    sequence item 6: expected string, MaxValueValidator found

有人能告诉我我哪里错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-28 15:58:17

您的语法不正确。您应该将验证器作为列表提供给validators参数:

代码语言:javascript
复制
models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(10)], default=5, help_text='integers 1 to 10')

有关更多信息,请参阅using validation in practice的文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13600265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档