我正在開發一個使用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
我希望,而在我的腦海剝離的代碼我沒有犯太多的錯誤!