簡體   English   中英

從1.8升級到1.9 Django Admin get_urls無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM