问题描述
我的模型中有一个db_index=True
的子弹字段:
class Student(models.Model):
...
slug = models.SlugField(max_length=100,db_index=True)
通过表单添加新记录时,我希望在填充字段中填充我在模型save()
方法中编码的压缩文本。但是,这永远不会发生,因为我被困在表单字段级验证中。
我尝试了许多选项,例如clean()
,clean_field()
等,但是所有这些选项仅在输入段子字段后才运行。
解决方法
您必须允许使用blank=True
在表单上输入空白值。通常,您还希望将unique=True
而不是db_index=True
用于子字段:
slug = models.SlugField(max_length=100,blank=True,unique=True)
请注意,unique
意味着db_index
。