在Django博客中添加类别路径

时间:2016-01-07 22:23:00

标签: django django-models django-templates django-admin django-views

我正在为我的网站添加一个博客,到目前为止一切都已成功。根据下面的代码片段,我有一个slug字段,动态创建url和标记系统。我不是在寻找任何超级疯狂的东西,因为博客专门用于搜索引擎营销,但我遗漏了一件我需要帮助的重要事情。

目前,当我创建一个新博客时,路径是www.mysite.com/blog/this-is-the-title-slug,但我真正需要做的是能够创建从管理仪表板添加类别然后将插入到网址中,如www.mysite.com/blog/mycategory/this-is-the-title-slug。

以下是我的一些代码:

我的网址:

 let best min-one-of link-neighbors [abs (ability - [ability] of myself)]

我的模特

from django.conf.urls import url
from . import views, feed

urlpatterns = [
    url(r'^$', views.BlogIndex.as_view(), name='post_list'),
    url(r'^(?P<slug>\S+)$', views.BlogDetail.as_view(), name="post_detail"),
    url(r'^feed/$', feed.LatestPosts(), name="feed"), name='post_edit'),
]

屏幕截图指出类别插入的位置

enter image description here

感谢您的帮助。新年快乐!!

1 个答案:

答案 0 :(得分:3)

您需要先为类别创建一个模型,例如:

class Category(models.Model):
    name = models.CharField(max_length=255, blank=False)
    slug = models.SlugField(max_length=100, blank=False)

    def __str__(self):
        return self.name

并将类别添加到您的Entry模型中:

class Entry(models.Model):
    title = models.CharField(max_length=200)
    ... < the rest of your model> 
    category = models.ForeignKey(Category)

现在,如果您想按类别过滤,请将此添加到您的urls.py

url(r'^(?P<category>[^\.]+)/(?P<slug>[^\.]+)/$', 'yourview', name='post_detail'),

请记住修改视图以接受类别作为参数,并使用此类别过滤条目。