Я новичок в джанго, поэтому прошу строго не судить.
Использую версию джанго:
ria ~ $ django-admin.py --version
1.5.1
Настроил я посты и категории. Связал их. Посты прекрасно выводятся, категории тоже, но судя по всему с регулярными выражениями у меня проблема. Прошу помочь, если кто знает.
Хочу добиться url как
http://site.com/category_slug/post_slug.html
Вот код model.py:
class BlogPost(models.Model): title = models.CharField(max_length = 150) slug = models.CharField( max_length = 120, unique=True ) category = models.ForeignKey('blog.Category', blank=True, null=True) def get_image(self): """Get upload_to path specific to this photo.""" return self.image.url def __unicode__(self): return '%s' % self.title @permalink def get_absolute_url(self): return ( 'view_post', None, { 'slug': self.slug, #'category' : self.category } ) class Category(models.Model): title = models.CharField(max_length=100, db_index=True) slug = models.SlugField(max_length=100, db_index=True) def __unicode__(self): return '%s' % self.title @permalink def get_absolute_url(self): return ('view_blog_category', None, { 'slug': self.slug })
Вот кусок контроллера:
где сама логика отвечающая за вывод поста:
def view_post(request, slug): return render_to_response('view_post.html', { 'post': get_object_or_404(BlogPost, slug=slug) })
В сам view_post.html помещаю пока что такое:
{{post.title}} {{post.body|safe}}
Ну и наконец urls.py:
url( #r'^news/(?P<category>\d+)/(?P<slug>[^\.]+).html', r'^news/(?P<slug>[^\.]+).html', #r'^(?P<category>\d+)/(?P<slug>[^\.]+)', 'blog.views.view_post', name='view_post' ),
Как видите, там я пытался впихнуть категорию разными способами, но не получалось.
С форматом как http://site.com/news/post_slug_one.html работает, а вот вместо news категорию для поста никак.
И еще категория для поста одна и только одна.
Прошу помощи.
Заранее благодарен.