0

我是 django 和 python 的高级初学者。我正在编写一个应用程序来处理会议的注册和摘要提交,并且我正在尝试使用基于类的视图。用户会收到一个电子邮件链接,该链接在 url 中包含他们的注册码。从这个 url 开始,用户会浏览一系列收集所有必要信息的视图。

复杂性来自这样一个事实,即用户经常在中途停下来,然后想在几天或几周后完成该过程。这意味着他们可能会从当前页面继续,或者他们可能只是单击该原始链接。此外,几周后他们可能会错过某些截止日期,例如,他们不能再提交摘要(但他们仍然可以注册)。在此过程中,他们已经选中或取消选中了各种选项,这些选项也会影响他们应该通过应用程序采取的路径。

我的问题是:将确定当前是否允许用户查看该页面的逻辑放置在哪里的最佳位置,如果不允许,则将它们也重定向到最佳 url?我想我会创建一个自定义视图类,例如,覆盖调度方法以包括全局检查(例如,会议注册是否开放?),然后子类可以添加额外的检查(例如,用户是否输入了所有必要的信息她的摘要?)。我遇到的问题是检查以错误的顺序运行(我希望先运行基类检查)。然后我开始研究自定义视图装饰器或自定义中间件。在这一点上,我意识到我可以使用一些专家建议来了解采取哪种方法。(如果重要,我没有使用 django 身份验证系统。)提前致谢。

4

1 回答 1

0

也许表单向导可以帮助您管理查看顺序。

一般来说, django graybeards主张将逐行逻辑保留在 中,将逐Models表逻辑保留在 中Managers,因此将复杂的视图逻辑保留在主视图类中似乎是合适的。

向导类可以帮助维护视图的顺序,但是要恢复过时的会话,您可能需要进行一些模型保存(这可能很快变得过于复杂)或一些 cookie 处理。

以往遇到类似情况时,我采取最简单的路线,将用户注册和用户想要执行的任务(事件注册)分开。用户注册一次,但如果他们弄乱了事件注册,他们只需要在以后重新登录并再次注册(他们的麻烦 - 不是你的!)。

于 2013-02-15T14:37:59.413 回答