假设我有一个Sale模型,用于跟踪销售情况,sold_on
字段。我想在Admin中有两个视图,一个显示所有Sale,一个显示Sale在上周。
我无法覆盖ModelAdmin.queryset,因为我想在不同的时间看到两个Querysets。什么是最好的方法。
答案 0 :(得分:2)
解决此问题的一种方法是(1)为Sale
声明proxy model(2)为此代理添加自定义ModelAdmin
,以及(3)限制{{} 1}}此自定义管理员仅从上周返回销售额。像这样:
queryset
这样,您会在管理页面中看到一个新项目# models.py
class LastWeekSales(Sale):
class Meta:
proxy = True
verbose_name_plural = "Sales from last week"
# admin.py
class ProxySaleAdmin(SaleAdmin):
def queryset(self, request):
return self.model.objects.filter(**conditions)
admin.site.register(LastWeekSales, ProxySaleAdmin)
,仅列出上周的销售额。