Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

99
Vistas
¿Concatenar un campo específico de objetos secundarios en objetos principales?

Tengo dos modelos:

 class Chapter(models.Model): chapter = models.IntegerField() verses_amount = models.IntegerField() chapter_content = models.TextField() class Verse(models.Model): chapter = models.ForeignKey(Chapter, on_delete=CASCADE) verse = models.TextField() verse_number = models.IntegerField()

En Verse , almaceno un párrafo en el campo de verse . ¿Cómo puedo consultar a todos los niños ( Verse ), obtener su párrafo de verse , concatenar todos esos y poner eso en Chapter.chapter_content ?

P.ej

 verses = Verse.objects.filter()[0:2] for verse in verses: print(verse.verse) >> 'Lorem Ipsum.' >> 'Second Lorem Ipsum Iteration 2.'

En el Chapter principal, quiero que chapter_content contenga los dos valores como una cadena larga:

'Lorem Ipsum. Segunda iteración 2 de Lorem Ipsum.'

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Podrías hacer algo como esto:

 chapter = Chapter.objects.get(chapter=1) # or whatever chapter you want to get content = "" for verse in chapter.verse_set.all(): content += f"{verse.verse} " content = content.rstrip() chapter.chapter_content = content chapter.save()

Pero es una mala práctica almacenar el verso tanto en los objetos Verse como en los objetos Chapter , porque ¿qué pasa si quieres actualizar solo un verso?

Podría intentar hacer que chapter_content una propiedad de método en el modelo Chapter .

 class Chapter(models.Model): chapter = models.IntegerField() verses_amount = models.IntegerField() @property def chapter_content(self): content = "" for verse in self.verse_set.all(): content += f"{verse.verse} " return content.rstrip() class Verse(models.Model): chapter = models.ForeignKey(Chapter, on_delete=CASCADE) verse = models.TextField() verse_number = models.IntegerField()

Tenga en cuenta que todavía tiene que ordenar los versículos por su número de orden.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda