django - 限制匿名用户可以在 Django 中查看的页面
问题描述
我正在创建一个包含大约 7 个页面的流程的网站。如果用户有一个看起来像这样的特定 url,则用户只能导航到流的 page1。
domain.com/flow/home/uid=123
在我的模型中检查 UID 以查看它是否存在,如果存在,他们可以查看正确的 page1。如果它不存在,那么它们将被重定向到另一个页面。我想确保他们可以导航到 page2,但前提是他们被允许。我有 2 个想法,不确定是否是正确的方法,或者是否存在另一种更好的方法。
将请求变量设置为“允许”并在每个页面上检查它。如果未设置,则将它们重定向回主页。
在 URL 中传递 uid 并确保它在每个页面上都有效。
我倾向于选项 1,因为它更容易/更清洁,但我想检查是否存在任何其他解决方案。
解决方案
您可以创建自定义用户模型,并且在那里您可以拥有一个允许的属性。然后检查 request.user.allowed 条件是否继续到 page2。 https://docs.djangoproject.com/en/3.0/topics/auth/customizing/
推荐阅读
- java - PolyUtil 解码 JavaScript 和 Java 的区别
- java - Java 图形复合不一致
- java - 避免使用 jax ws 记录器打印特定字段?
- flutter - 用 TextField 填充行?
- postgresql - 如何在 Postgres Docker-Compose 启动时运行 *.sh 文件
- solr - Solr 7.5限制具有某些术语的方面不能按计数排序?
- xamarin.forms - Firebase 身份验证令牌无效
- java - RDF4J:从端点解析查询结果并将其存储为 ntriples 文件(格式错误的查询)
- c - X86汇编中数组访问的解释
- r - 将条形图放置在条形图中的特定 x 轴值处