disable counter for guide elements
This commit is contained in:
parent
223f5217a2
commit
87686abbb7
|
|
@ -174,7 +174,27 @@ class GuideQuerySet(models.QuerySet):
|
||||||
|
|
||||||
def with_extended_related(self):
|
def with_extended_related(self):
|
||||||
"""Return QuerySet with extended related."""
|
"""Return QuerySet with extended related."""
|
||||||
return self.with_base_related().prefetch_related('guideelement_set')
|
return (
|
||||||
|
self.with_base_related()
|
||||||
|
.prefetch_related(
|
||||||
|
models.Prefetch(
|
||||||
|
'guideelement_set',
|
||||||
|
queryset=GuideElement.objects.select_related(
|
||||||
|
'guide_element_type',
|
||||||
|
'establishment',
|
||||||
|
'review',
|
||||||
|
'wine_region',
|
||||||
|
'product',
|
||||||
|
'city',
|
||||||
|
'wine_color_section',
|
||||||
|
'section',
|
||||||
|
'guide',
|
||||||
|
'parent',
|
||||||
|
'label_photo',
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
def by_country_id(self, country_id):
|
def by_country_id(self, country_id):
|
||||||
"""Return QuerySet filtered by country id."""
|
"""Return QuerySet filtered by country id."""
|
||||||
|
|
@ -256,10 +276,7 @@ class GuideQuerySet(models.QuerySet):
|
||||||
def annotate_present_objects_counter(self):
|
def annotate_present_objects_counter(self):
|
||||||
"""Return QuerySet with annotated field - present_objects_counter."""
|
"""Return QuerySet with annotated field - present_objects_counter."""
|
||||||
return (
|
return (
|
||||||
self.annotate_restaurant_counter()
|
self.annotate(
|
||||||
.annotate_shop_counter()
|
|
||||||
.annotate_wine_counter()
|
|
||||||
.annotate(
|
|
||||||
present_objects_counter=(
|
present_objects_counter=(
|
||||||
models.F('restaurant_counter') +
|
models.F('restaurant_counter') +
|
||||||
models.F('shop_counter') +
|
models.F('shop_counter') +
|
||||||
|
|
|
||||||
|
|
@ -107,10 +107,10 @@ class GuideBaseSerializer(serializers.ModelSerializer):
|
||||||
guide_filters = GuideFilterBaseSerializer(read_only=True,
|
guide_filters = GuideFilterBaseSerializer(read_only=True,
|
||||||
source='guidefilter')
|
source='guidefilter')
|
||||||
# counters
|
# counters
|
||||||
restaurant_counter = serializers.IntegerField(read_only=True)
|
# restaurant_counter = serializers.IntegerField(read_only=True)
|
||||||
shop_counter = serializers.IntegerField(read_only=True)
|
# shop_counter = serializers.IntegerField(read_only=True)
|
||||||
wine_counter = serializers.IntegerField(read_only=True)
|
# wine_counter = serializers.IntegerField(read_only=True)
|
||||||
present_objects_counter = serializers.IntegerField(read_only=True)
|
# present_objects_counter = serializers.IntegerField(read_only=True)
|
||||||
count_objects_during_init = serializers.IntegerField(read_only=True,
|
count_objects_during_init = serializers.IntegerField(read_only=True,
|
||||||
source='count_related_objects')
|
source='count_related_objects')
|
||||||
|
|
||||||
|
|
@ -130,10 +130,10 @@ class GuideBaseSerializer(serializers.ModelSerializer):
|
||||||
'state',
|
'state',
|
||||||
'state_display',
|
'state_display',
|
||||||
'guide_filters',
|
'guide_filters',
|
||||||
'restaurant_counter',
|
# 'restaurant_counter',
|
||||||
'shop_counter',
|
# 'shop_counter',
|
||||||
'wine_counter',
|
# 'wine_counter',
|
||||||
'present_objects_counter',
|
# 'present_objects_counter',
|
||||||
'count_objects_during_init',
|
'count_objects_during_init',
|
||||||
]
|
]
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,11 @@ class GuideBaseView(generics.GenericAPIView):
|
||||||
permission_classes = get_permission_classes()
|
permission_classes = get_permission_classes()
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
"""Overridden get_queryset method."""
|
"""An overridden get_queryset method."""
|
||||||
return models.Guide.objects.with_extended_related().annotate_counters()
|
return (
|
||||||
|
models.Guide.objects.with_extended_related()
|
||||||
|
# .annotate_counters()
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class GuideFilterBaseView(generics.GenericAPIView):
|
class GuideFilterBaseView(generics.GenericAPIView):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user