2017-09-05 13 views
0

Django管理者の追加ビューと変更ビューに異なるフォームフィールドを表示したいとします。Djangoの追加ビューと変更ビューの異なるフォームフィールドadmin

それはaddであれば、私は、フォームフィールドfile_uploadを示していますし、それがその後、changeであれば、それはaddであれば、私はadmin.py

class couplingAdmin(admin.ModelAdmin): 
    list_display = ('cname','mname') 
    form = CouplingUploadForm #upload_file is here 

    def get_form(self, request, obj=None, **kwargs): 
     # Proper kwargs are form, fields, exclude, formfield_callback 
     if obj: # obj is not None, so this is a change page 
      kwargs['exclude'] = ['upload_file',] 
     else: # obj is None, so this is an add page 
      kwargs['exclude'] = ['cname','mname',] 
     return super(couplingAdmin, self).get_form(request, obj, **kwargs) 

からモデルフィールドcnamemname

コードを示していますそれでいいですが、もしそれがchangeであれば、私はすべてのフィールド、すなわちcname、mname、upload_fileを得ています。

upload_fileを管理者の変更ビューから削除するにはどうすればよいですか。

ご協力いただきまして誠にありがとうございます。前もって感謝します。

答えて

0

はあなたのModelAdminadd_viewchange_viewメソッドをオーバーライドすることができます

class CouplingAdmin(admin.ModelAdmin): 
    list_display = ('cname', 'mname') 
    form = CouplingUploadForm # upload_file is here 

    def add_view(self, request, extra_content=None): 
     self.exclude = ('cname', 'mname') 
     return super(CouplingAdmin, self).add_view(request) 

    def change_view(self, request, object_id, extra_content=None): 
     self.exclude = ('upload_file',) 
     return super(CouplingAdmin, self).change_view(request, object_id) 
+0

change_viewはまだ 'upload_file'フィールドを示しています。それは私が 'form = CouplingUploadForm'を前に –

関連する問題