Django:仅显示用户自己的数据

标签 django authentication model private

我构建了一个应用程序,其中列出了人员和公司。个人和公司的每个条目均由用户拥有。

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/

相关文章:

asp.net - Web 身份验证状态 - session 与 Cookie?

iOS/Swift : PFFacebookUtils. logInWithPermissions 返回零用户和错误

security - 我可以在移动应用程序中使用 localstorage 安全地实现 cookieless "keep me signed in"吗?

android - 使用 Sceneform 生态系统有问题地旋转 3D 模型

python - 使用 Django 从其他应用程序导入模型时遇到问题

python - 如何从存储库中删除带有 Django 项目的 virtualenv 并添加 requirements.txt 文件?

python - 使用注释对相关字段进行 Django 过滤器

python - Django request.GET ('variable' ) 获取多个值

python - django rest framework - 向后序列化以避免 prefetch_related

ios - 大模型 TableView 解决方案 Swift