Django forms.ModelForm slugfield db_index=True
Django forms.ModelForm slugfield db_index=True
我的模型中有一个 slug 字段 db_index=True
:
class Student(models.Model):
...
slug = models.SlugField(max_length=100, db_index=True)
当通过我的表单添加新记录时,我希望 slug 字段填充我在模型 save()
方法中编码的 slugified 文本。但是,这从来没有发生过,因为我卡在了表单字段级别的验证中。
我尝试了很多选项,例如 clean()
、clean_field()
等,但所有选项都仅在 slug 字段输入内容后运行。
您必须允许使用 blank=True
在表单中输入空白值。您通常还希望使用 unique=True
而不是 db_index=True
作为 slug 字段:
slug = models.SlugField(max_length=100, blank=True, unique=True)
请注意 unique
意味着 db_index
。
我的模型中有一个 slug 字段 db_index=True
:
class Student(models.Model):
...
slug = models.SlugField(max_length=100, db_index=True)
当通过我的表单添加新记录时,我希望 slug 字段填充我在模型 save()
方法中编码的 slugified 文本。但是,这从来没有发生过,因为我卡在了表单字段级别的验证中。
我尝试了很多选项,例如 clean()
、clean_field()
等,但所有选项都仅在 slug 字段输入内容后运行。
您必须允许使用 blank=True
在表单中输入空白值。您通常还希望使用 unique=True
而不是 db_index=True
作为 slug 字段:
slug = models.SlugField(max_length=100, blank=True, unique=True)
请注意 unique
意味着 db_index
。