需要一些帮助来在模型中创建django字段验证

时间:2017-11-01 16:42:49

标签: django python-3.x validation django-models

我正在尝试验证这个BaseProduct模型,但是我很震惊,有人可以把它拿出来帮我解决。有可能验证吗? 有没有有效的解决方案?

我需要验证CharFiled, DecimalField and ImageField

models.py

class BaseProduct(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=200)
    type = models.CharField(max_length=200)
    price = models.DecimalField(max_digits=6)
    image = models.ImageField(upload_to='', blank="")


    def __str__(self):
        return '%s' % (self.name)

1 个答案:

答案 0 :(得分:1)

验证是什么意思?您可以进行各种验证,some come built in django或者您可以编写自己的验证,具体取决于您期望的输入类型

同样在您的模型定义中,您有type = models.CharField(max_length=200,当您的选择最多为5或6个字符时

也许这是一种更好的方法:

PRODUCT_TYPE = (
    ('n', 'Normal'),
    ('c', 'Combo'),
)

type = models.CharField(max_length=1#...`

修改

正如@cezar指出的那样,字段定义为您提供了主要验证,如CharField:

  

models.CharField(max_length = 200)将验证输入是否为a   最大长度为200个字符的字符串。它会抛出一个错误   如果输入不是字符串,或者它是一个长于200的字符串   字符