I’m a newbie in Django and in WordPress if you create a Post called “hello world” then the URL by default will be like
wordpress.com/2012/07/05/hello-world/
and if you create another post with the same name it will be
wordpress.com/2012/07/05/hello-world-2/
I want to achieve the same in Django and I was thinking to create a sample urlconf like this
(r'^articles/(\d{4})/(\d{2})/(?P<name>\w+)', 'article.views.article_detail')
and in the views break down the name and iterate through all the items and match the name.
But the problem with will be that I won’t be able to reference posts dynamically. For e.g. if I was to link the a hello world post I would need to find out how many posts with the same name exist already and then append the additional number to it which is inefficient.
So what’s the best way to do this in Django?
See the documentation for Django’s
{{ url }}template tag. It lets you pass it a view name and parameters, and automatically generates the correct URL for you.You can take care of appending numbers to each post’s name in the function that generates its slug – you could have a look at django-autoslug