Kelketek
Kelketek

Reputation: 2446

Reversing complex Admin URLs from templates

I find myself needing a bit more flexibility than what I understand I can do based on the Django documentation for reversing Admin URLs. I'm doing things like:

{% url admin:billing_creditcardtoken_add %}?customer={{ user.id }}

This works, but it feels like I should be able to do it without leaving the template tags.

If I want to find all CreditCardToken objects from the billing application that belong to the current user, I find myself doing:

{% url admin:billing_creditcardtoken %}?customer={{ user.id }}

...but this fails altogether. Is there a more elegant way of getting these URLs?

Upvotes: 0

Views: 58

Answers (1)

Kelketek
Kelketek

Reputation: 2446

I was looking at this the wrong way. While:

{% url admin:billing_creditcardtoken_add %}?customer={{ user.id }}

...might be somewhat ugly, the only thing added syntax would serve to do is try to construct a query string, which isn't something one reverses URLs to do normally anyway. So this is an acceptable method of accomplishing this task.

What I was looking for in the second turned out to be:

{% url admin:billing_creditcardtoken_changelist %}?customer={{ user.id }}

...changelist, as it turns out, does not show a history of changes, but creates a list of possible items to change. Adding the query string applies the proper filter I needed.

Upvotes: 1

Related Questions