Hi all,

I'm writing a very small, simple video game news media site. I'm
starting off small, with just Blurbs and Reviews. The Blurbs are
basically quick news articles. The Reviews are extensive articles
about a video game, ofcourse.

So, since both Blurbs and Reviews are both types of articles, I just
created an abstract base class for a model - my Article model. And
then I created a Blurb and Review model. These models live in an
application named "articles".

Now, with these two models the mission is simple - map some urls to
views that query the database for the model data and then render the
template. I really want my urls to look something like this...

site.com/review/
site.com/review/this-is-a-reviews-slug/

site.com/blurb/
site.com/blurb/this-is-a-blurbs-slug/

Since the view for both of these urls would be identical, if i made it
generic by passing in the model type, I decided to whip up a base
urls.py that looked like the following: http://dpaste.com/71150/

That base urls.py file includes the same url patterns for the slug and
index views, which exist inside the actual "articles" application, and
the included urls.py file looks like this: http://dpaste.com/71151/

The two views that are being used here accept the relevant model as a
parameter and use it to query the database and simply pass the results
onto a generic template for displaying the data. This all sounds very
nice and elegant. I wasn't duplicating parts of my code and everything
I had written was very simple. The problem came though when in my
template I was wanting to display a permalink, or just simply use a
reverse lookup to get the link of the article currently being viewed.

When using the {% url %} tag, the reverse lookup was for some odd
reason returning the "site.com/review/" pattern, which is the second
pattern, even if the article was a Blurb. I'm not sure why it'd choose
the second matching pattern instead of the first, but either way this
behavior is nothing something I was wanting to hack my way around. So,
I added in the namespaces and in my template tried to use them in the
reverse url lookup by doing the follow: {% url article:single
article.slug %}. This was still returning the "site.com/review/"
pattern match for some reason.

So, I ask - is there something I'm doing wrong? Am I not properly
using namespaces? They sound to me like they should correct this
situation but don't appear to be working properly. Is there a better
way to organize this site layout? I could easily just create two apps
- one for blurbs and one for reviews but they'd both contain identical
code, with simple a different template tag line. I could also double
the number of views and url patterns in my articles app, and point
them all to their own custom templates. Both of these options are much
less elegant, though.

Thanks for any advice in advance!
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@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