不允许用户为对象中的字段输入相同的值

时间:2017-06-11 16:22:14

标签: python django forms django-views

我有这段代码

** models.py **

Class Collection(models.Model):
    user = ForeignKey(User)
    title = Charfield(max_length=250)
    order = IntegerField()

我想允许用户添加集合对象。但他们必须为每个对象输入不同的数字(顺序)。例如:1,2,3,4,5,6,7 限制为1-10。

我知道我可以为一个字段设置一个唯一的值。但是,我希望允许所有用户输入1-10作为订单字段

知道怎么处理这个吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试为Order字段添加Django内置范围验证器(1-10),然后在两个字段(User,Order)上添加唯一约束。

from django.db import models
from django.core.validators import MaxValueValidator, MinValueValidator

Class Collection(models.Model):
    user = ForeignKey(User)
    title = Charfield(max_length=250)
    order = IntegerField(validators=[MinValueValidator(1), MaxValueValidator(10])

    class Meta:
        unique_together = ('user', 'order',)