Django 表单,更改默认值 max_length

Django form, change default max_length

在模型中 "Example" 我有两个字段:

-"description" (varchar, length 64).
-"description_length" integer.

description_length每条记录都有不同的值,总是在1到64之间。

在 Django 表单中如何设置 maxlength 描述等于 description_length 变量值?

没问题。

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))