2012-04-19 49 views
0

我有一個Django 1.4項目,它使用django註冊,它在用戶註冊成功後調用重定向('registration_complete',(),{})。這在運行於http://127.0.0.1:8000/的django開發服務器上效果很好。django註冊中的重定向()調用的問題

我的暫存站點位於Apache服務器上的非根位置。像http://example.com/mysite。所以當用戶在那裏註冊時,這會導致頁面未找到錯誤,因爲django註冊重定向調用不會正確地反轉url - 它將離開站點根目錄(mysite /)。

我試圖決定如何解決這個問題。這是我正在考慮的:

1)寫一個自定義的django註冊後端來處理註冊工作流的方式不同。

2)修補django註冊默認後端以不同的方式處理重定向。

3)?

解決此問題的最佳方法是什麼?

+0

(我認爲)導致我痛苦的重定向的一個例子是這個django註冊視圖代碼的第190行:https://bitbucket.org/ubernostrum/django-registration/src/27bccd108cde/registration/views .py – Erik 2012-04-19 03:53:32

+1

url解析在其他地方工作嗎? Django通常不能很好地處理子目錄,所以最好在單獨的子域上運行項目。 – ilvar 2012-04-19 04:40:06

+0

我所有的調用reverse('urlname')都不允許使用mysite前綴。這對我來說始終是一個棘手的問題。爲我的分期環境使用子域名是一個我沒有考慮過的好主意。 – Erik 2012-04-19 05:20:45

回答

0

最好的解決方案是ilvar提供的 - 避免使用子目錄並在單獨的子域上運行項目。我也建議將該子域放在文件系統的不同路徑下。謝謝ilvar!

0

如果您有註冊包作爲您的代碼的一部分,那麼您可以在註冊url文件中只需添加所需的前綴。如果沒有,您可以在主要網址中添加前綴,並使用include語句將其引導至註冊網址。它對你有幫助嗎?

+0

謝謝,但我已經轉向使用每個ilvar的建議的子域。看起來像一個更強大的方法。 – Erik 2012-04-21 16:05:56