簡體   English   中英

Django中的通用關系,帶有聚合的queryset

[英]Generic relation in django, queryset with aggregate

我在模型中使用django 1.6和泛型關系。 我在模型中的aggregate函數有問題:

這是我觀點的一部分:

class EventListView(PageContextMixin, ListView):
    model = Activity
    template_name = 'events/eventlist.html'

    def get_queryset(self):
        seasons = Season.objects.all()
        if not self.request.user.is_superuser:
            seasons = seasons.filter(is_active=True)
            active_seasons_ids = list(IsActiveFlag.objects.exclude(is_active=False).values_list('id', flat=True))
            seasons = list(Season.objects.filter(isactiveflags__id__in=active_seasons_ids))
        minmax = seasons.aggregate(Min('start'), Max('end'))
        min_date = minmax['start__min']
        max_date = minmax['end__max']

        active_sale_and_cycles_ids = list(SaleAndCycle.objects.exclude(is_sale_active=False).values_list('id', flat=True))
        filters_sale = Q(sale_and_cycles__id__in=active_sale_and_cycles_ids)
        active_is_cyclic_event_ids = list(SaleAndCycle.objects.exclude(is_cyclic_event_active=False).values_list('id', flat=True))
        filters_cycle = Q(sale_and_cycles__id__in=active_is_cyclic_event_ids)
        sales_events_activities = Activity.objects.filter(Q(filters_sale, online=True) | Q(filters_cycle, online=True))   
        sales_events_ids = sales_events_activities.values_list('id', flat=True)
        minmax_sales_events_activities = sales_events_activities.aggregate(Min('start'), Max('end'))
        max_date_sales_events_activities = minmax_sales_events_activities['end__max']

我在這個地方遇到錯誤:

minmax_sales_events_activities = sales_events_activities.aggregate(Min('start'), Max('end'))

錯誤:

no such table: events_saleandcycle

但是數據庫中有表(我使用sqlite),其字段如下:id,content_type_id,object_id,位置,is_sale_active,is_cyclic_event_active,cycle_link

class SaleAndCycle(SortableVAExtra):
    is_sale_active = models.BooleanField(default=False)
    is_cyclic_event_active = models.BooleanField(default=False)
    cycle_link = models.CharField(max_length=255, null=True, blank=True)

    def __unicode__(self):
        return str(self.is_sale_active)

Django 1.6的一個封閉問題描述了注釋(聚合)的失敗。 修復程序的相關提交僅在Django 1.7a及更高版本中存在。

我擔心您唯一的機會就是升級到Django 1.7。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM