2009-01-23 69 views
0

我在數據庫中有幾個對象。使用通用視圖編輯對象的網址看起來像site.com/cases/edit/123/,其中123是特定對象的ID。考慮cases/url.py內容:如何將url從url傳遞到urls.py中的post_save_redirect

url(r'edit/(?P<object_id>\d{1,5})/$', update_object, { ... 'post_save_redirect': ???}, name = 'cases_edit'), 

其中update_object是一個通用的視圖。如何構建post_save_redirect指向site.com/cases/edit/123/。我的問題是,我不知道如何通過對象的id重定向功能。我試過這樣的:

'post_save_redirect': 'edit/(?P<object_id>\d{1,5})/' 
'post_save_redirect': 'edit/' + str(object_id) + '/' 

但顯然這些工作都沒有。 reverse函數被提示,但如何通過特定的id

'post_save_redirect': reverse('cases_edit', kwargs = {'object_id': ???}) 

在寺廟{% url %}也需要使特定對象的id。該id可以通過extra_context傳遞:

extra_context = {'object_id': ???} 

在所有的情況下,問題是讓從URL object_id

問候
CHRISS

+0

你真的沒有提供足夠的信息。請詳細說明。 – 2009-01-23 20:50:16

回答

1

總之你需要做的是包裝update_object函數。

def update_object_wrapper(request, object_id, *args, **kwargs): 
    redirect_to = reverse('your object edit url name', object_id) 
    return update_object(request, object_id, post_save_redirect=redirect_to, *args, **kwargs) 
0

首先,在reverse功能閱讀起來。

二,在{%url%}標籤上閱讀。

在視圖中使用reverse函數可生成預期的重定向位置。

另外,您應該在模板中使用{% url %}標記。