9

我正在使用 django-registration 将用户登录到我的应用程序中。那部分工作正常。我无法弄清楚的部分是如何在用户登录时设置自定义会话变量。例如,我想填充包含 UserProfile 数据的变量以及其他一些函数的输出。然后我就可以在后续的视图/模板中使用该信息。

如果有人可以向我指出在线教程或发布一些示例代码,那就太好了。

我正在使用 django 1.1 和 Python 2.6

4

2 回答 2

4

如果您不想持久存储用户数据(只是额外的会话数据),请查看:

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

于 2010-02-15T18:27:42.823 回答
2

我意识到@stefanw 为您提供了一个替代解决方案,但要回答原始问题:

在登录时设置会话数据很困难,因为设置该数据最简单的地方是在您的视图函数中,而您要修改的特定视图函数是 contrib.django.auth 应用程序的一部分。

因此,您的选择如下:

  • 创建一个小型中间件类来设置会话数据。
  • 创建一个模板标签或其他代码,而不是可以集成到登录模板或后续页面中,以设置您想要的数据。
  • 编写您自己的自定义登录视图函数(实际上非​​常简单)。

快乐的 django !

于 2010-02-15T21:57:25.477 回答