我正在开发一个使用Django作为后端的网站,我希望允许客户使用管理界面添加新页面 - 因此他输入了页面标题,用于更好的url的页面别名,并选择他是想要静态内容还是基于文章的结构。Django动态网址
我的方法如下:我创建了一个名为sitemanager
的应用程序,该应用程序由上述页面模型以及将页面添加到我的模板上下文(用于菜单等)的上下文处理器组成,精细。
当然,我还需要将其挂接到我的网址文件,但在这里就是麻烦开始的地方:我可以,感谢的Django的Python的结构,检索内urls.py
的Page
模型,并生成我的URL模式相应地,它确实显示,但Django似乎缓存该文件(这通常很有意义),所以更改只会在服务器重新启动后才会发生。这显然是不可接受的。
我的第一个想法是以某种方式使管理应用程序重新设置url缓存,如果新页面被添加,删除或别名被修改(并且只有这样,因为缓存通常是件好事),但我没有想法如何从那里开始。
或者也许有一个更简单的解决方案,我目前没有看到?
我urls.py
的相关部分基本上是这样的:
from sitemanager.models import Page
static_pages = Page.objects.filter(static=True)
article_pages = Page.objects.filter(static=False)
for page in static_pages:
pattern = r'^/'+page.alias+'/$'
urlpatterns += patterns('',
url(pattern, 'views.static_page',
{ 'active': page }
)
)
# Pretty much the same for the article pages,
# but with includes of another app
我希望,而在我的脑海剥离的代码我没有犯太多的错误!