2010-09-06 64 views
1

假设我有一个销售模型,用于跟踪销售情况,并使用sold_on字段。我想在管理员中看到两个视图,一个显示所有销售情况,一个显示上周的销售情况。如何在管理员中为某个模型设置多个查询集

我不能重写ModelAdmin.queryset,因为我想在不同的时间看到两个Querysets。做这个的最好方式是什么。去这个

回答

2

一种方法是:(1)声明proxy modelSale(2)添加自定义ModelAdmin此代理和(3)限制该自定义管理员的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) 

这样,你会看到你的管理页面的新项目Sales from last week仅列出了上周的销售。

相关问题