修改抽象模型中字段的max_length

时间:2018-08-24 17:38:09

标签: python django

class AbstractBaseField(models.Model):
    choices = models.CharField(_("Choices"), max_length=1000, blank=True)

    class Meta:
        abstract = True

class TicketField(AbstractBaseField):
    pass

TicketField._meta.get_field("choices").max_length = 5000

我正在尝试修改max_length上一个字段的TicketField属性,该属性继承于抽象模型。如您所见,我对模型定义领域进行了修补,并且迁移已按预期进行。该字段正确应用了max_length,我可以通过shell设置好该值,但是管理员验证失败,好像旧的max_length仍然存在,显示错误确保此值具有最多1000个字符(具有XXXX)

我已经在运行时检查了ModelForm上的max_length和Validator值,它们都使用了新的max_length,但是仍然会出现验证错误。

(Pdb) self.fields["choices"].max_length
5000
(Pdb) self.fields["choices"].validators[0]._constructor_args
((5000,), {})
(Pdb) self.fields["choices"].widget.attrs
{u'class': u'vTextField', u'maxlength': '5000'}

0 个答案:

没有答案