python - Django 管理,仅显示需要的模型

标签 python django django-models model admin

我是 django 新手,我只需要在管理中显示那些状态=“待处理”的模型。

ITEM_STATUSES = (
    ('pending', _('Waiting approval')),
    ('approved', _('Approved')),
    ('declined', _('Declined'))
)

class Item(models.Model):
    title = models.CharField(max_length=64)
    ...
    status = models.CharField(max_length=32, choices=ITEM_STATUSES)
    ...

class ItemAdmin(admin.ModelAdmin):
  pass

admin.site.register(Item, ItemAdmin)

最佳答案

覆盖get_queryset() (对于 django>=1.6)您的 ModelAdmin 方法:

The get_queryset method on a ModelAdmin returns a QuerySet of all model instances that can be edited by the admin site.

class ItemAdmin(admin.ModelAdmin):
    def get_queryset(self, request):
        qs = super(ItemAdmin, self).get_queryset(request)
        return qs.filter(status='pending')

仅供引用,对于 django <= 1.5 使用 queryset()方法代替。

关于python - Django 管理,仅显示需要的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22843875/

相关文章:

python - geometry() 中的 +0+0 在 tkinter 中是什么意思?

Django 1.3.1 Heroku Postgres 错误

django - 使用 python 3.5 加密 django 模型字段

django - 如何正确创建覆盖 save() 方法的相关对象?

python - 有敌人射击玩家问题吗?游戏

Python > Selenium + CSV : Webdriver to read, 访问 .csv 文件中的所有链接

python - 使用 websocket 调用 API

python - Django 1.8 UpdateView 生成 405 错误和空白模板

javascript - 为什么 javascript fetch API 将请求从 POST 更改为 OPTIONS?

python - 在新的virtualenv中安装wheel软件包时,导入旧django项目模型的任何方法