在我的模型中,我有一个只包含值'A','B'和'C'的字段。在声明字段时,最好使用choice
参数吗?验证Django中的值列表
如果我没有决定使用choice
参数并且想为它编写自定义验证逻辑,那么我会在哪里写这个 - 这是否会在模型的clean
方法中?我也见过clean_<fieldname>
方法 - 这些方法是什么或只适用于表单?我想在模型中进行验证,因为我没有使用表单。
class Action(models.Model):
"""
Contains the logic for the visit
"""
id = models.AutoField(primary_key=True)
path = models.CharField(max_length=65535, null=False)
to = models.IntegerField(null=False)
def clean(self, **kwargs):
"""
Custom clean method to do some validation
"""
#Ensure that the 'to' is either 1,2 or 3.
if self.to not in [0, 1, 2]:
raise ValidationError("Invalid to value.")
当我进行验证时,是否需要返回一些值?有人创建新记录时,我的方法方法会被调用吗?
(虽然我读过的文档,我还是有点困惑这个。)
由于一吨。
我会推荐阅读这个博客:http://www.b-list.org/weblog/2007/nov/02/handle-choices-right-way/ – Nix