2016-11-03 7 views
0

iveはデータを表示するだけの管理フォームにカスタムウィジェットを追加しました。フォームを保存しようとすると、私のカスタムウィジェットにフィールドが必要になります。どのようにこの設定を不要にすることができますか?Django adminカスタム管理ウィジェット、どのように無効にする必要がありますか?

おかげ

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

答えて

0

Form fieldsセクションでDjangoのドキュメントを見てみましょう。

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

    class Meta: 
     model = ConfigVariables 
     fields = "__all__" 

ただし、このフィールドがモデルで必須ではないかどうかを確認してください。

関連する問題