简体   繁体   English

Django管理员,仅显示所需的模型

[英]Django admin, show only needed models

I'm new to django and I need to show only those models in admin, which have status = 'pending'. 我是django的新手,我只需要在admin中显示状态为'pending'的那些模型。

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)

Override get_queryset() (for django>=1.6) method of your ModelAdmin : 重写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. get_queryset上的get_queryset方法返回可以由管理站点编辑的所有模型实例的QuerySet。

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

FYI, for django <= 1.5 use queryset() method instead. 仅供参考,对于Django <= 1.5,请改用queryset()方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM