如何在 django 1.9 之后使用 modelform 创建禁用字段

Aki*_*ori 7 django python-3.x

我想在 Django 1.11 上使用 ModelForm 创建禁用字段。

我读过 django 自 1.9 以来已“禁用字段选项”。但是,我无法理解如何使用 ModelForm 定义禁用字段。

你能告诉我如何用 ModelForm 创建禁用字段吗?

这是我的models.py、forms.py 和views.py


class my_model(models.Model)

    name = models.CharField(max_length=10,)
    title = models.CharField(max_length=10,)
    date = models.DateField(default=date.today,)

    def __str__(self):
        return u'%s' % (self.name)

class my_modelform(ModelForm):

    class Meta:
        model = my_model
        fields = ['name', 'title', 'date']
        widgets = {
            'date': DateWidget(usel10n=True, bootstrap_version=3,),
        }
        disabled = [ 'name' ]

class my_UpdateView(UpdateView):
    model = my_model
    form_class = my_modelform
    template_name = "update_form.html"
    success_url = "success.html"    
Run Code Online (Sandbox Code Playgroud)

虽然,我更改了“disabled = {'name' : True} 而不是 [ 'name' ],但它不起作用。

nik*_*k_m 12

class Meta:
    model = my_model
    fields = ['name', 'title', 'date']
    widgets = {
        'date': DateWidget(usel10n=True, bootstrap_version=3,),
        'name': forms.TextInput(attrs={'disabled': True}),
    }
Run Code Online (Sandbox Code Playgroud)