I think `ModelAdmin.changelist_view
<https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.changelist_view>`
is the right place.
class MyModelAdmin(admin.ModelAdmin):
def changelist_view(request, extra_context=None):
if 'lang' not in request.GET:
q = request.GET.copy()
q.setdefault('lang', 'en')
return redirect('%s?%s' % (request.path, q.urlencode()))
return super(MyModelAdmin, self).changelist_view(
request, extra_context=extra_context,
)
On Tuesday, April 25, 2017 at 2:08:33 AM UTC+3, Nate Granatir wrote:
>
> Where would I put that code? Is there a way to do it when the Admin form
> is initialized?
>
> On Monday, April 24, 2017 at 5:31:18 PM UTC-5, Todor Velichkov wrote:
>>
>> I think a simple redirect can fix your problem.
>>
>> Something like this:
>>
>> if 'lang' not in request.GET:
>> q = request.GET.copy()
>> q.setdefault('lang', 'en')
>> return redirect('%s?%s' % (request.path, q.urlencode()))
>>
>>
>>
>>
>> On Monday, April 24, 2017 at 7:12:18 PM UTC+3, Nate Granatir wrote:
>>>
>>> In my app I have admin filters for a field called "language" - language
>>> is a field in several of my models - and I've created them custom,
>>> inheriting from SimpleListFilter, so that I can apply a default of English
>>> when none has yet been specified. This works almost perfectly - the only
>>> problem is that if I do it this way, by altering the queryset in the admin
>>> filter when the user has not selected an option, the parameter is not
>>> displayed to the user in the GET paramaters of the URL, which I worry is
>>> confusing to the user.
>>>
>>> Is there any way to solve this problem? Essentially I want to apply a
>>> default admin filter and have that filter appear in the URL as if it were
>>> chosen by the user. I am open to alternative solutions if anyone has done
>>> something like this before, even if it means a solution other than using a
>>> custom admin filter (e.g. some way of applying default GET parameters
>>> before the request is passed to the admin page.)
>>>
>>> Thanks.
>>>
>>
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/7a4bd11a-2c17-44c6-a73f-685444bac89c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.