我构建了一个应用程序,其中列出了人员和公司。个人和公司的每个条目均由用户拥有。
owner = models.ForeignKey('auth.User', related_name='+', null=True, blank=True)
我想知道如何在每个 View 中仅显示特定用户拥有的帖子。这样,仅显示用户添加的公司,而不是每个用户的每个条目。
我猜 if request.user = people.owner 可能会起作用,但这真的是最好的方法吗?
提前致谢!
最佳答案
当您在 View 中查找相关模型时,按用户过滤:
people = People.objects.filter(owner=request.user).filter(...)
如果您想稍微考虑一下这一点,您可以使用 custom manager使用相关的方法,看起来像
people = People.objects.for_current_user(request).filter(...)
但是当然这并不能节省太多的输入,因为您仍然需要传入 request
对象 - 但如果您想要更复杂的逻辑(例如 super 用户可以查看所有人),那么这会很方便。
关于Django:仅显示用户自己的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11833305/