基本上我想在Django中创建一个变量persitent,我不知道如何。
更确切地说,我希望用户在登录站点时选择特定项目(例如,通过ChoiceField)。然后,只要他没有选择另一个项目,该网站就“知道”他选择了什么项目,这样他就可以做一些与该项目相关的行动。
怎么可能?会话变量是否可行?或者可能是缓存系统?一些提示将不胜感激:)
如果我不够清楚,请告诉我
答案 0 :(得分:4)
是 - 您将要使用会话变量,因为这些会持续存在但仅限于每个用户。缓存将持续存在于所有用户。
从Django文档中查看:'How to use sessions'。
基本上,您只需要在settings.py
中设置会话引擎:
SESSION_ENGINE = 'django.contrib.sessions.backends.cookies'
然后在视图中你可以这样做:
request.session['project'] = 'Some Project'
然后在模板中,您可以使用:
{{ request.session.project }}
答案 1 :(得分:1)
只要会话存储已启动,会话就很好,这意味着如果您需要此功能可靠,则必须使用数据库会话后端(或类似Redis)。
您还可以将ForeignKey(Project, on_delete=SET_NULL)
添加到user profile model并使用它来存储当前项目。