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

221
Visualizações
Agregue streamfield al índice de búsqueda en Wagtail

Lucho por agregar mi streamfield al índice de búsqueda de wagtail. Esto afecta tanto a los bloques disponibles como a los personalizados.

Por lo que encontré en la lista de correo, un bloque personalizado debería implementar get_searchable_content , que es lo que hacen todos los bloques.

aquí está mi modelo que me gustaría indexar:

 class BlogPage(Page): author = models.ForeignKey(User, on_delete=models.PROTECT) date = models.DateField("Post date") main_category = models.ForeignKey('blog.BlogCategory', related_name='main_category', default=1, on_delete=models.PROTECT) categories = ParentalManyToManyField('blog.BlogCategory', blank=True, related_name='categories') readtime = models.IntegerField(blank=True, null=True) subtitle = models.CharField( verbose_name=_('subtitle'), max_length=255, help_text=_("The page subtitle as you'd like it to be seen by the public - also the blog post teaser."), ) body = StreamField([ ('heading', general.TitleBlock()), ('paragraph', blocks.RichTextBlock()), ('image', general.FillImageChooserBlock()), ('subtitle', general.SubTitleBlock()), ('pullquote', general.PullQuoteBlock()), ('blockquote', general.BlockQuoteBlock()), ]) cover = models.ForeignKey( 'wagtailimages.Image', on_delete=models.PROTECT, related_name='+' ) content_panels = Page.content_panels + [ MultiFieldPanel([ FieldPanel('subtitle'), FieldPanel('date'), FieldPanel('main_category', widget=forms.Select), FieldPanel('categories', widget=forms.CheckboxSelectMultiple), ImageChooserPanel('cover'), FieldPanel('author'), ], heading="Blog information"), StreamFieldPanel('body'), ] search_fields = Page.search_fields + [ index.FilterField('date'), index.FilterField('main_category'), index.SearchField('body'), index.SearchField('subtitle'), ] def get_context(self, request): context = super().get_context(request) context['posts'] = BlogPage.objects.exclude(id=self.id).order_by('-date')[:10] return context def save(self, *args, **kwargs): if self.body.stream_data: self.readtime = read_time_as_minutes(self.body.stream_data) return super().save(*args, **kwargs)

Gracias por cualquier pista :)

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Dado que aún no ha configurado un motor de búsqueda, está utilizando el motor de base de datos predeterminado. Esto solo le permite buscar en los campos predeterminados, cualquier campo personalizado que desee usar en la búsqueda necesita un motor de búsqueda más avanzado. Esto se explica aquí .

over 4 years ago · Santiago Trujillo Relatório
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