Django Model Inheritance. Hiding or removing fields

Rather than inherit, consider using customized Forms.

  1. You can eliminate fields from display that are still in the model.

  2. You can validate and provide default values in the form's clean() method.

See http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin


If you are inheriting the model then it is probably not wise to attempt to hide or disable any existing fields. The best thing you could probably do is exactly what you suggested: override save() and handle your logic in there.


You can control the fields that are editable in admin.

From the Django docs:

If you want a form for the Author model that includes only the name and title fields, you would specify fields or exclude like this:

class AuthorAdmin(admin.ModelAdmin):
    fields = ('name', 'title')

class AuthorAdmin(admin.ModelAdmin):
    exclude = ('birth_date',)

http://docs.djangoproject.com/en/dev/ref/contrib/admin/