我正在使用django-registration將用戶登錄到我的應用程序中。這部分工作正常。我弄不懂的部分是如何在用戶登錄時設置自定義會話變量。例如,我想填充包含UserProfile數據的變量以及一些其他函數的輸出。然後我可以在隨後的視圖/模板中使用這些信息。如何使用django-registration和auth在登錄時設置會話變量?
如果任何人都可以在線指導我的教程或發佈一些示例代碼,那就太棒了。
我使用Django 1.1和Python 2.6
我正在使用django-registration將用戶登錄到我的應用程序中。這部分工作正常。我弄不懂的部分是如何在用戶登錄時設置自定義會話變量。例如,我想填充包含UserProfile數據的變量以及一些其他函數的輸出。然後我可以在隨後的視圖/模板中使用這些信息。如何使用django-registration和auth在登錄時設置會話變量?
如果任何人都可以在線指導我的教程或發佈一些示例代碼,那就太棒了。
我使用Django 1.1和Python 2.6
如果您不希望用戶數據(只是附加的會話數據)的持久存儲看看:
http://docs.djangoproject.com/en/dev/topics/http/sessions/
的會議如果您使用django.contrib.auth,框架很可能已經啓用。
如果你想要更多的用戶數據(不僅是在一個會話,但在數據庫中),您將它們保存在另一個「曲線」模型持久性存儲:
http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
我意識到@stefanw爲您提供了一個替代解決方案,但要回答原始問題:
在登錄時設置會話數據很困難,因爲設置數據最簡單的地方在您的視圖函數中,而您想要修改的特定視圖函數是contrib.django.auth應用程序的一部分。
所以,你的選擇會是以下幾點:
快樂的django-ing!
另一種選擇是使用登錄信號:https://docs.djangoproject.com/en/dev/topics/auth/#login-and-logout-signals。但如上所述,在你的情況下使用request.user是比使用會話更好的選擇。 –
正確的鏈接:https://docs.djangoproject.com/en/1.11/ref/contrib/auth/#module-django.contrib.auth.signals – cgl
我只是尋找額外的會議數據在這一點上。我已經擁有了數據庫中的所有信息,只需要弄清楚如何實現它。 我想我真正的問題是如何設置這個會話數據,而使用django註冊?是否有可能或應該編寫我自己的功能來登錄用戶? – doza
您不需要將配置文件數據導入會話。使用django.contrib.auth時,您可以使用request.user訪問當前用戶。 – stefanw
當然!我沒有這樣想過。這更有意義。 謝謝! – doza