2008-09-06 63 views
7

我可以打印出模板中某個視圖的網址/admin/manage/products/add嗎?Django:打印網址的視圖沒有硬編碼的網址

這裏是我想創建一個鏈接

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}), 

我想有/管理/產品/在模板中添加沒有硬編碼規則。我怎樣才能做到這一點?

編輯:我不使用默認的admin(嗯,我覺得卻是在另一個URL),這是我自己

回答

15

您可以使用get_absolute_url,但那隻適用於特定對象。由於您的對象尚未創建,因此在這種情況下無法使用。

您想使用named URL patterns。下面是一個簡單的介紹:

改變你urls.py行至:

(r'^manage/products/add/$', create_object, {'model': Product, 'post_save_redirect': ''}, "create-product"), 

然後,在你的模板,你用它顯示的網址:

{% url create-product %} 

如果你使用Django 1.5或更高版本,你需要這樣的:

{% url 'create-product' %} 

你可以做一些更強大的事情名爲URL模式中,你很方便。請注意,它們只在開發版本(也是1.0)中。

+0

如何在我的視圖中調用url?例如,返回HttpResponseRedirect(...)其中...是url的值create-product – g33kz0r 2011-06-21 10:42:23

2

如果使用named url patterns你可以做你的模板中的follwing

{% url create_object %} 
0

創建URL的首選方法是在模型類中添加get_absolute_url方法。您可以在那裏對路徑進行硬編碼,這樣您至少可以更接近遵循KISS哲學。

您可以使用permalink裝飾器進一步研究,該裝飾器根據url配置計算路徑。

您可以在django文檔here中閱讀更多內容。