Ale*_*r O 5 python django django-models django-admin
我需要在2个管理类的上下文中使用一个模型.所以,这是我的模特:
ITEM_STATUSES = (
('pending', _('Waiting approval')),
('approved', _('Approved')),
('declined', _('Declined'))
)
class Item(models.Model):
title = models.CharField(max_length=64)
description = models.TextField(blank=True)
...
status = models.CharField(max_length=32, choices=ITEM_STATUSES)
...
Run Code Online (Sandbox Code Playgroud)
我想要两次使用它.首先,我想展示所有模型,例如:
class ItemAdmin(admin.ModelAdmin):
pass
admin.site.register(Item, ItemAdmin)
Run Code Online (Sandbox Code Playgroud)
而且,我想要一个新页面,其中只显示status ='pending'的模型,如下所示:
class ItemAdminPending(admin.ModelAdmin):
def queryset(self, request):
qs = super(ItemAdminPending, self).queryset(request)
return qs.filter(status='pending')
admin.site.register(Item, ItemAdminPending)
Run Code Online (Sandbox Code Playgroud)
但当然我收到一个错误:AlreadyRegistered:模型项已经注册
有什么建议?希望得到帮助.
很接近!你想要的是在你的:中添加一个代理模型models.py:
class ItemPending(Item):
class Meta:
proxy = True
Run Code Online (Sandbox Code Playgroud)
然后ModelAdmin像这样注册第二个:
admin.site.register(ItemPending, ItemAdminPending)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
930 次 |
| 最近记录: |