Django管理员自定义管理小部件,如何禁用所需?

时间:2016-11-03 13:26:22

标签: python django

我已经在我的管理表单中添加了一个自定义小部件,只显示数据,当我尝试保存表单时,我的自定义小部件需要获取字段,如何将其设置为不需要?

由于

forms.py

class TemplateVariablesWidget(forms.Widget):
    template_name = 'networks/config_variables.html'

    def render(self, name, value, attrs=None):
        c_vars = ConfigVariables.objects.all()
        context = {
            'ConfigVariables' : c_vars
        }
        return mark_safe(render_to_string(self.template_name, context))


class VariableForm(forms.ModelForm):
    variables = forms.CharField(widget=TemplateVariablesWidget)

    class Meta:
        model = ConfigVariables
        fields = "__all__" 

admin.py

class ConfigTemplateAdmin(admin.ModelAdmin):
    form = VariableForm
    list_display = ('device_name', 'date_modified')

admin.site.register(ConfigTemplates, ConfigTemplateAdmin)

错误: enter image description here

1 个答案:

答案 0 :(得分:-1)

Form fields部分查看Django文档。

class VariableForm(forms.ModelForm):
    variables = forms.CharField(widget=TemplateVariablesWidget, required=False)

    class Meta:
        model = ConfigVariables
        fields = "__all__" 

但是,请注意,检查模型中是否需要此字段。