Created
October 30, 2019 12:52
-
-
Save hovi/1dd8f7c454461a7c7b77ad27de4c2b7c to your computer and use it in GitHub Desktop.
change changelist url in django admin as simple as possible (usable with proxies)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from urllib import urlencode | |
from django.contrib.admin.views.main import ChangeList | |
from django.urls import reverse | |
def change_admin_url(model, **kwargs): | |
class CustomModelChangeList(ChangeList): | |
def url_for_result(self, obj): | |
return model_change_url_only(obj, model._meta, **kwargs) | |
changelist = CustomModelChangeList | |
changelist.model = model | |
return changelist | |
def model_change_url_only(object, meta=None, **kwargs): | |
meta = meta or object._meta | |
return reverse('admin:{app}_{model}_change'.format(app=meta.app_label, model=meta.model_name), | |
args=[object.pk]) + parameters(**kwargs) | |
def parameters(**kwargs): | |
if not kwargs: | |
return "" | |
return "?" + urlencode(kwargs) | |
""" | |
# example usage in django admin class (Member is model class that you want to lead instead of original model used for the admin) | |
def get_changelist(self, request, **kwargs): | |
return change_admin_url(Member) | |
""" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment