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/5f2e9067-5c78-4782-a87b-5b3edcd8862c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.