【发布时间】:2016-04-12 12:00:51
【问题描述】:
我正在向我的网站添加一个博客,到目前为止一切都很成功。根据下面的代码 sn-ps,我有一个动态创建 url 和标签系统的 slug 字段。由于这些博客专门用于搜索引擎营销,因此我并不是在寻找任何超级疯狂的东西,但我错过了一件我需要帮助的重要事情。
目前,当我创建一个新博客时,路径是 www.mysite.com/blog/this-is-the-title-slug 但我真正需要做的是能够从管理仪表板创建添加类别然后会像 www.mysite.com/blog/mycategory/this-is-the-title-slug 一样插入到 URL 中。
这是我的一些代码:
我的网址:
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'),
]
我的模型
from django.db import models
from django.core.urlresolvers import reverse
from django_markdown.models import MarkdownField
class EntryQuerySet(models.QuerySet):
def published(self):
return self.filter(publish=True)
class Tag(models.Model):
slug = models.SlugField(max_length=200, unique=True)
def __str__(self):
return self.slug
class Entry(models.Model):
title = models.CharField(max_length=200)
body = MarkdownField()
slug = models.SlugField(max_length=200, unique=True)
publish = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
objects = EntryQuerySet.as_manager()
tags = models.ManyToManyField(Tag)
def get_absolute_url(self):
return reverse("post_detail", kwargs={"slug": self.slug})
def __str__(self):
return self.title
class Meta:
verbose_name = "Blog Entry"
verbose_name_plural = "Blog Entries"
ordering = ["-created"]
屏幕截图指出类别插入的位置
感谢您的帮助。新年快乐!!
【问题讨论】:
-
您是否尝试过插入类别?
-
我确实尝试插入与 slug 具有相同模式的模型名称,但遇到了错误。蛞蝓的事情很容易弄清楚,但我在创建动态网址时仍然有点迷失。
标签: django django-models django-templates django-admin django-views