python - 过滤 Django 管理更改列表以根据登录用户显示特定行

标签 python django

我有一个像这样的 Django 模型:

class Tour(models.Model):
   Name=models.CharField(max_length=100)
   Count=models.SmallIntegerField() 
   PriceUnitCode=models.ForeignKey(PriceUnit)
   Price=models.CharField(max_length=12)
   Description=models.TextField()
   ActionDate=models.CharField(max_length=16)
   ActionUser=models.ForeignKey(User)

当用户登录管理站点时,我希望用户只能看到他创建的 Tour 实例(ActionUser 等于登录用户 ID 的 Tour 实例)。

如何根据登录用户过滤更改列表?

最佳答案

谢谢兄弟 我试过你的代码,但它有错误!!所以我改变了它,现在它运行良好:

class TourAdmin(admin.ModelAdmin):
   def queryset(self, request):
      qs = super(TourAdmin, self).queryset(request)
      if request.user.is_superuser:
            return qs
      return qs.filter(ActionUserCode=request.user)
admin.site.register(Tour,TourAdmin)

我把代码给其他可能有这样问题的人

关于python - 过滤 Django 管理更改列表以根据登录用户显示特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7435623/

相关文章:

python - 使用python计算文件中单词之间的空格数?

python - Gensim word2vec 在预定义字典和单词索引数据上

django - 如何使用 PostgreSQL 计数估计加速 Django 的管理页面?

python - Pandas:对于 2 个或多个特定列值完全相同的行组,如何将唯一整数分配为新列

c++ - Libtorrent python SSL 绑定(bind)

python - 通知 celery 任务在 worker 关闭期间停止

带有登录装饰器的 Django 测试框架 - 它们有效吗?反向错误

python - Django 基于类的 View - 意外的装饰器行为

python - 尝试在 Heroku : Application Error 上启动 django 应用程序

django - DynamoDB 的命名约定?