Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

284
Views
¿Cómo consulto etiquetas Wagtail sin que cree cientos de consultas, problema n+1?

Tengo un puñado de entradas que cada una tiene docenas de "etiquetas" cuando trato de obtener esos datos, provoca cientos de consultas. Si bien el uso de la búsqueda previa funciona en todos mis otros modelos y enlaces, no parece funcionar en esto. La publicación a continuación dice que tiene algo relacionado con la función de consulta falsa de wagtails, pero aún no se ha solucionado. ¿Hay alguna manera de utilizar etiquetas donde pueda obtenerlas a través de la API para que no creen cientos de consultas (una para cada etiqueta) que las inutilice debido a su lento tiempo de respuesta?

Cualquier ayuda que pueda proporcionar sería muy apreciada.

Se planteó un problema similar aquí, pero no obtuve respuesta . ¿Cómo precargar las etiquetas de publicación de Wagtail?

Además, cuando uso prefetch, en realidad duplica la cantidad de consultas.

Aquí está mi código:

 # serializer.py//////////////////////////////////// # orderable models links # Custom searializers to add custom display fields class EventCollectionSerializer(serializers.ModelSerializer): class Meta: model = CategoryEventCollection fields = ['id', 'collection_name', 'collection_event'] class TagSerializer(serializers.ModelSerializer): class Meta: model = Tag fields = ['name', 'id'] # MAIN SERIALIZER PRIMARY FOCUS class PrimaryFocusSerializer(serializers.HyperlinkedModelSerializer): # assign fields to custom serializer event_collection = EventCollectionSerializer(many=False) tags = TagSerializer(many=True) class Meta: model = PrimaryFocus fields = ['id', 'event_collection', 'title_major', 'synopsis', 'level_ability', 'page_count', 'reading_category', 'book_image', 'author_first_name', 'author_last_name', 'author_dob', 'tags', 'purchase_link', 'source', ] # PRIMARY FOCUS VIEWSET////////////////////////////////// class PrimaryFocusViewSet(viewsets.ModelViewSet): # This snippet just console logs how many queries def dispatch(self, *args, **kwargs): response = super().dispatch(*args, **kwargs) print('Queries Counted: {}'.format(len(connection.queries))) return response # fetch all lexis items to setup queryset queryset = PrimaryFocus.objects.all() # set serializer class serializer_class = PrimaryFocusSerializer # optimize query with select related and prefetching def get_queryset(self): return (PrimaryFocus.objects .select_related('event_collection',) .prefetch_related('tags', ) .all() )
over 4 years ago · Santiago Trujillo
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!