如何根据表变量生成Django的URL

时间:2014-10-15 15:28:40

标签: django django-views

我有一个博客,我希望以下列方式构建我的网址:blah.com/blog/this-is-my-first-blog-post其中this-is-my-first-blog-post是一个特定博客文章的标题。

有没有办法根据我的表格中带有博客帖子的title列生成这些类型的网址?

2 个答案:

答案 0 :(得分:4)

您最好将网址密钥存储为SlugField。您可以使用slugify确定该值。

然后你的网址代码如下:

url(r'^(?P<slug>[-\w]+)/$','example_view'),

你可以使用get_object_or_404:

def example_view(request, slug):
    instance = get_object_or_404(Model, slug=slug)

或者您可以使用docs

中显示的DetailView CBV

答案 1 :(得分:1)

有几种选择:

  1. 在django admin中,您可以在编辑时预先填充该字段。

    prepopulated_fields = {'slug': ('title',), }
    

    这需要放在admin.py文件中。

  2. 如果您想在管理员之外执行此操作,您可以使用预保存信号并使用上面@schillingt上面提到的slugify