【发布时间】:2013-03-06 10:21:16
【问题描述】:
我有可以通过多种方式查看的数据。不同的方式取决于用户是否登录/匿名,如果用户登录,则取决于用户是否是帖子的作者/读者。
我一直在查看基于 django 类的视图和 django 大括号,但我还没有找到解决这个问题的既定答案。我假设这种决策将导致树结构,到目前为止,我看到的代码根据用户的权限将用户定向到一个 url,它不会根据用户的权限显示不同类型的数据权限/登录状态。
处理此问题的最佳方法是什么?或者是否有我遗漏或未见过的代码来处理这个问题?
注意:我想使用基于 django 类的视图。
例如:
我访问了一个 stackoverflow 帖子。
显示帖子和 cmets。
如果是匿名用户,则显示加入 stackoverflow 数据元素。
如果是登录用户,检查是否作者。
如果是作者,则显示编辑帖子数据元素。
如果不是作者,则不显示编辑帖子数据元素。
如何在 django CBV 中正确表示上述条件语句?
【问题讨论】:
-
你想使用什么样的泛型,例如在ListView中你可以按用户过滤查询。
-
感觉这更像是在视图级别上完成的。您广泛提及“显示”,表明您可以(应该?)在视图级别进行。如果您希望通过类来完成,请使用根据用户状态返回不同结果的方法扩展您的模型,然后始终在视图中调用这些方法(但这不适用于“加入框”,例如)。