[英]Upgrading from 1.8 to 1.9 Django Admin get_urls not working
我正在使用Django管理員,剛剛從1.8升級到1.9。 在1.8中,我在change_form中添加了一個單擊按鈕,它使用get_urls覆蓋將我帶到另一個html模板。 像這樣:
def get_urls(self):
urls = super(arunAdmin, self).get_urls()
my_urls = patterns('',
(r'(\d+)/tarrespgraph/$', self.admin_site.admin_view(self.tarrespgraph)),
)
return my_urls + urls
根據我在網上看到的一些建議,我將其更改為:
def get_urls(self):
urls = super(arunAdmin, self).get_urls()
my_urls = [
url(r'^tarrespgraph/$', self.admin_site.admin_view(self.tarrespgraph)),
]
return my_urls + urls
但是我收到了這個錯誤:
具有主鍵'132 / change / tarrespgraph'的NBI Graph對象不存在。
Django發現自定義的change_form.html沒有問題。 我的自定義模板(tarrespgraph.html)與我自定義的change_form.html位於同一文件夾中。 Django在哪里尋找我的自定義模板? 我應該移動tarrespgraph.html,還是更改對url的引用? 提前感謝你的幫助!
您可能不應該從您的網址格式中刪除(\\d+)
組。 請嘗試以下方法:
my_urls = [
url(r'^(\d+)/tarrespgraph/$', self.admin_site.admin_view(self.tarrespgraph), name='tarrespgraph'),
]
請注意,我添加了一個名稱,這將讓我們稍后反轉該網址。
如果沒有(\\d+)
組,新的url模式與url不匹配,因此它由admin更改視圖處理,該視圖會給出錯誤。
您還需要更改模板中的鏈接。 在Django 1.9中,Django已將change
附加到管理員更改網址(例如,現在是/admin/app/model/132/change/
而不是/admin/app/model/132/
。這意味着您的相對鏈接'tarrespgraph/'
現在指向/admin/app/model/132/change/tarrespgraph/
而不是/admin/app/model/132/tarrespgraph/
。您可以將相對鏈接更改為../tarrespgraph/
。但是,它會更少脆弱使用url
標簽代替:
<a class="tarrespgraph" href="{% url 'admin:tarrespgraph' object_id %}">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.