我想确保我的访问者(未经过身份验证的用户)在不直接来自“先前视图”的情况下无法访问特定视图。我不得不手动创建表单预览和确认状态。这是提交和预览之间的步骤,以及预览和确认我想“保护”。
表单提交视图 -> 预览视图 -> 确认视图。
有什么方法可以创建一个唯一的哈希,发布它,并检查它是否正确,或者在某种程度上生成一个 cookie、会话——或者其他任何感觉聪明的东西?
我是 Django 初学者(一般是编程初学者),任何片段或指出我正确的方向都将非常感激!
谢谢。
我想确保我的访问者(未经过身份验证的用户)在不直接来自“先前视图”的情况下无法访问特定视图。我不得不手动创建表单预览和确认状态。这是提交和预览之间的步骤,以及预览和确认我想“保护”。
表单提交视图 -> 预览视图 -> 确认视图。
有什么方法可以创建一个唯一的哈希,发布它,并检查它是否正确,或者在某种程度上生成一个 cookie、会话——或者其他任何感觉聪明的东西?
我是 Django 初学者(一般是编程初学者),任何片段或指出我正确的方向都将非常感激!
谢谢。
我能想到的至少有两种方法可以做到这一点:
一种是在您的表单或查询字符串值中包含一个隐藏字段,其中包含您想要在下一个视图中获取的哈希/唯一值。如果它不存在或不正确,请重定向。
另一种方法是检查 request.META 中的引用 URL,以查看它们是否来自您希望它们首先进入的视图,并从表单提交中保存会话值以执行其余视图。如果不存在,请重定向。如果引用 URL 不是您所期望的,请重定向。
无论您使用 cookie、会话、查询字符串参数还是隐藏表单帖子,它们都在做同样的事情 - 验证值是否存在。无论哪种方法效果最好,对于您作为该应用程序的开发人员和最有可能的维护者来说最有意义的方法。