我正在用 Django 创建一个博客网站。我有一个这样的博客模型:
class Blog(models.Model):
name = models.CharField(max_length=255)
slug = models.SlugField(max_length=255)
...
我希望每个博客的首页都位于这样的 URL:www.example.com/blog-slug/
但是,我也在使用 Flatpages,并且希望它能够匹配这样的 URL:www.example.com/flat-page/
所以像这样的 urlpatterns 是行不通的:
urlpatterns = patterns('',
(r'^(?P<blog_slug>[-\w]+)/$', 'weblog_index', {}),
...
(r'^', include('django.contrib.flatpages.urls')),
)
因为所有 Flatpages URL 都会被第一个模式捕获。我想我希望第一个模式只匹配 Blog 模型中的有效 slug,但我不知道该怎么做。