mirror of
https://github.com/jazzband/django-constance.git
synced 2026-03-16 22:40:24 +00:00
Add a get_changelist_form hook in the ModelAdmin
This method is used in the `changelist_view` to get the changelist form.
You may want to override this method to get a different form depending
on the user that makes the request. For example:
class MyConstanceAdmin(ConstanceAdmin):
def get_changelist_form(self, request):
if request.user.is_superuser:
return SuperuserForm:
else:
return super(MyConstanceAdmin, self).get_changelist_form(request)
This commit is contained in:
parent
baab89f4ac
commit
be65f6536a
1 changed files with 11 additions and 2 deletions
|
|
@ -184,14 +184,23 @@ class ConstanceAdmin(admin.ModelAdmin):
|
|||
|
||||
return config_value
|
||||
|
||||
def get_changelist_form(self, request):
|
||||
"""
|
||||
Returns a Form class for use in the changelist_view.
|
||||
"""
|
||||
# Defaults to self.change_list_form in order to preserve backward
|
||||
# compatibility
|
||||
return self.change_list_form
|
||||
|
||||
@csrf_protect_m
|
||||
def changelist_view(self, request, extra_context=None):
|
||||
if not self.has_change_permission(request, None):
|
||||
raise PermissionDenied
|
||||
initial = get_values()
|
||||
form = self.change_list_form(initial=initial)
|
||||
form_cls = self.get_changelist_form(request)
|
||||
form = form_cls(initial=initial)
|
||||
if request.method == 'POST':
|
||||
form = self.change_list_form(data=request.POST, initial=initial)
|
||||
form = form_cls(data=request.POST, initial=initial)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
messages.add_message(
|
||||
|
|
|
|||
Loading…
Reference in a new issue