我怎樣才能將用戶重定向到不同的應用程序上保存?重定向管理員保存
我有兩個應用程序,說app1
和app2
。如果用戶在app2
點擊保存,那麼它應該被重定向到app1
而不是默認頁面。
我不想做一個自定義表單。
我怎樣才能將用戶重定向到不同的應用程序上保存?重定向管理員保存
我有兩個應用程序,說app1
和app2
。如果用戶在app2
點擊保存,那麼它應該被重定向到app1
而不是默認頁面。
我不想做一個自定義表單。
高清change_view(個體經營,要求,OBJECT_ID,extra_context中用=無):
result = super(mymodeladmin, self).change_view(request, object_id, extra_context)
result['Location'] = "your location"
return result
這不是一個好的答案:如果change_view不成功會發生什麼?另外賦值給結果['Location']不是非常類似Django的(即使它可能工作)。上面的答案(Daniel Roseman)是一個很好的答案。 – 2011-11-08 18:02:40
你應該驗證Roseman的答案以獲得2點聲望:)你可以學習如何使用stackexchange [here](http://meta.stackoverflow.com/) – 2011-12-08 11:17:32
@Glide - 什麼是驗證(它與upvoting,我做過的)。您的文檔鏈接有點寬泛。 – 2011-12-28 15:05:59
要在保存到管理員後更改重定向目標,您需要覆蓋ModelAdmin
類中的response_add()
(用於添加新實例)和response_change()
(用於更改現有的)。
請參閱原始碼django.contrib.admin.options
。
如果你希望人們在StackOverflow上不斷幫助你,你需要接受你的問題的答案。
簡單的例子,以使其更清晰如何做到這一點(將是一個類的ModelAdmin內):
from django.core.urlresolvers import reverse
def response_add(self, request, obj, post_url_continue=None):
"""This makes the response after adding go to another apps changelist for some model"""
return HttpResponseRedirect(reverse("admin:otherappname_modelname_changelist"))
def response_add(self, request, obj, post_url_continue=None):
"""This makes the response go to the newly created model's change page
without using reverse"""
return HttpResponseRedirect("../%s" % obj.id])
也許看看URL命名空間......你也許可以使用HttpResponseRedirect +反向重定向您的重寫保存方法內的用戶。請記住,這是Django 1.1中的一項新功能,並且在1.0.x中不受支持。
http://docs.djangoproject.com/en/dev/topics/http/urls/#url-namespaces
要添加到@ DanielRoseman的答案,你不希望用戶重定向當他們選擇保存並繼續而不是保存按鈕,那麼您可以改用此解決方案。
def response_add(self, request, obj, post_url_continue="../%s/"):
if '_continue' not in request.POST:
return HttpResponseRedirect(get_other_app_url())
else:
return super(MyModelAdmin, self).response_add(request, obj, post_url_continue)
def response_change(self, request, obj):
if '_continue' not in request.POST:
return HttpResponseRedirect(get_other_app_url())
else:
return super(MyAdmin, self).response_change(request, obj)
謝謝,這真的幫了我。 – nym 2015-10-19 20:52:57
爲什麼沒有接受任何問題的答案? – 2009-08-27 09:41:29
保存在哪裏?在管理員中,以自定義的形式,在哪裏? – 2009-08-27 09:50:53
在沒有定製form.it管理是簡單管理,我重寫保存功能 – ha22109 2009-08-27 10:01:28