2

基本上我想在 Django 中创建一个变量,但我不知道如何。

更准确地说,我希望用户在登录站点时选择一个特定的项目(例如通过 ChoiceField)。然后,只要他不选择另一个项目,站点就“知道”他选择了哪个项目,因此他可以执行与该项目相关的一些操作。

这怎么可能?会话变量是要走的路吗?或者也许是缓存系统?一些提示将不胜感激:)

如果我不够清楚,请告诉我

4

2 回答 2

5

是的 - 您需要使用会话变量,因为这些变量会持续存在,但仅限于每个用户。缓存将为所有用户保留。

看看这个: Django 文档中的“如何使用会话”

本质上,您只需将会话引擎设置为settings.py

SESSION_ENGINE = 'django.contrib.sessions.backends.cookies'

然后在视图中你可以这样做:

request.session['project'] = 'Some Project'

然后在模板中您可以使用:

{{ request.session.project }}
于 2011-08-24T09:52:34.143 回答
1

只要会话存储启动,会话就很好,这意味着如果您需要此功能可靠,则必须使用数据库会话后端(或类似 Redis 的东西)。

您还可以添加ForeignKey(Project, on_delete=SET_NULL)用户配置文件模型并使用它来存储当前项目。

于 2011-08-24T09:55:56.047 回答