2011-11-08 99 views
0

讓我們的標準的例子Django的 - 從管理員更改頁面訪問_set

class Author(models.Model): 
    name = models.CharField(max_length=100) 

class Book(models.Model): 
    title = models.CharField(max_length=100) 
    author = models.ForeignKey(Author) 
    #... Many other fields ... 

Author管理員改變模板試圖訪問到相關書籍

<ul> 
    {% for book in original.book_set.all %} 
    <li> 
     <a href="{% url admin:myapp_manager_change book.id %}">Edit {{ book }}</a> 
    </li> 
    {% endfor %} 
</ul> 

我得到

呈現時捕獲NoReverseMatch:對於帶有參數'(1L,)'和關鍵字參數'{}'的'myapp_manager_change'的反轉不是f ound。

爲什麼?
我該如何訪問此book_set

回答

1

檢查文檔上reversing admin urls

你必須與你的實際應用,以取代「的myapp」:

admin:{{ app_label }}_{{ model_name }}_change object_id 

所以,如果您的應用程序被命名爲圖書館和模型的名字預訂的鏈接將是:

<a href="{% url admin:library_book_change book.id %}">Edit {{ book }}</a> 
+0

謝謝,這很明顯,我試圖在不知道的情況下使用URL逆向系統。 –

+0

很高興我能幫忙:-) – arie

1

book_set在您的示例中實際運行良好,因爲異常是從 for環路中引發的。看來問題出在視圖名稱上。

試試這個:

{% url admin:myapp_book_change book.id %} 
+0

謝謝我將myapp改爲_my_actual_app_和'manager'改爲_my_actual_model_ :) –