在模型"Example"
中,我有两个字段:
-"description" (varchar, length 64).
-"description_length" integer.
description_length
对每条记录都有不同的值,它总是在1到64之间。
在Django表单中,如何将maxlength
描述设置为等于description_length
变量值?
答案 0 :(得分:2)
当然可以。
class ExampleForm(forms.ModelForm):
class Meta:
model = Example
def __init__(self, *args, **kwargs):
super(ExampleForm, self).__init__(*args, **kwargs)
if self.instance:
self.fields['description'].max_length = self.instance.description_length
请确保您的description
模型字段足以容纳description_length
的文字:
class Example(models.Model):
MAX_DESCRIPTION_LENGTH = 1024
description = models.CharField(max_length=MAX_DESCRIPTION_LENGTH)
description_length = models.IntegerField(
validators=MaxValueValidator(MAX_DESCRIPTION_LENGTH))