different fields for add and change pages in admin

前端 未结 9 766
日久生厌
日久生厌 2020-12-05 00:37

I have a django app with the following class in my admin.py:

class SoftwareVersionAdmin(ModelAdmin):
    fields = (\"product\", \"version_number\", \"descrip         


        
9条回答
  •  时光说笑
    2020-12-05 01:08

    This is how it's done in Django 1.10. Just override get_form and return add_form when object is None:

    class FoobarAddForm(forms.ModelForm):
        class Meta:
            model = Foobar
            fields = ['some_field',]
    
    @register(Foobar)
    class AdminFoobar(admin.ModelAdmin):
        add_form = FoobarAddForm
    
        def get_form(self, request, obj=None, **kwargs):
            defaults = {}
            if obj is None:
                defaults['form'] = self.add_form
            defaults.update(kwargs)
            return super(AdminFoobar, self).get_form(request, obj, **defaults)
    

提交回复
热议问题