Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

296
Visualizações
¿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
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda