Good morning, Django e-mail list! Happy Monday! I have a problem. :) I checked 
the Django documentation and Stack Overflow with no success, so you guys are my 
next line of defense. This is an issue I've encountered several times; this is 
just the first time working around it has bothered me enough to send an email.

So I have a couple URLs. The idea here is to use the same view but get slightly 
different results. In particular, I have a registration page. We have our 
regular packages, and then special nonprofit pricing. So, my database stuff to 
power this is all set up.

I have my basic url:
('^register/$', 'mysite.myapp.views.register', name = 'register')

I want another one for nonprofits...same thing, and almost identical 
functionality, so I changed the above and added a line:
(r'^register/$', 'mysite.myapp.views.register', { 'nonprofit': False }, name = 
'register')
(r'^register/nonprofit/$', 'mysite.myapp.views.register', { 'nonprofit': True 
}, name = 'register')

In the view, I am passing the value of the "nonprofit" variable to the template 
under the same name. Simple enough.

Now, the problem: In the template, the reverse URL matching totally barfs. I 
want...
{% url register nonprofit=nonprofit %}
...to work.

But I get a NoReverseMatch error:
Reverse for 'register' with arguments '()' and keyword arguments '{'nonprofit': 
False}' not found.

The Django documentation (as well as an answer on Stack Overflow) suggest that 
I really ought to be using named URL patterns to solve this problem...so, 
instead of naming my non-profit registration page "register", I name it 
"register-nonprofit".

I really do not want to do this if I can avoid it. That would require me to 
have something to the effect of...
{% if nonprofit %}
        {% url register-nonprofit %}
{% else %}
        {% url register %}
{% endif %}
...on the relevant pages. That's substantially less clean.

I also am hoping to avoid a /register/forprofit/ type of URL. My boss would 
kill me. :)

Any thoughts?

Regards,
Luke

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to