Skip to content

Instantly share code, notes, and snippets.

@nspo
Created April 7, 2017 19:40
Show Gist options
  • Save nspo/b086a2a812442ed4e582a2d63333f417 to your computer and use it in GitHub Desktop.
Save nspo/b086a2a812442ed4e582a2d63333f417 to your computer and use it in GitHub Desktop.
Don't show buttons to add/change/delete a ForeignKey element of a model in form (tested in admin form)
class NoEditForeignTablesInlineMixin(object):
""" Don't show links to add/edit/delete foreign key element besides ForeignKey selection in forms """
no_edit_foreign_tables_in_form = []
def get_form(self, request, obj=None, **kwargs):
"""
Don't allow adding/changing/deleting users inline
"""
form = super(NoEditForeignTablesInlineMixin, self).get_form(request, obj, **kwargs)
for key in self.no_edit_foreign_tables_in_form:
form.base_fields[key].widget.can_add_related = False
form.base_fields[key].widget.can_change_related = False
form.base_fields[key].widget.can_delete_related = False
return form
# Example
class PurchaseAdmin(NoEditForeignTablesInlineMixin, admin.ModelAdmin):
no_edit_foreign_tables_in_form = ["user"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment