es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo guardar un conjunto de consultas de objetos en una sola transacción sin usar un bucle for en Django ORM.

Solo una pregunta rápida, por ejemplo, la variable “posts” tiene n objetos y necesito guardar la ID de la publicación en un modelo “post_tag”, ¿cómo puedo lograrlo sin usar un ciclo “for” y solo mediante una única transacción utilizando Django ORM?

Aquí está un pequeño fragmento de código de lo que quiero lograr:

posts = Post_Tag.objects.filter(tag_id = subcat).values_list(‘post_id’, flat = True)
for post in posts:
post_home_feed = Post_Home_Feed.objects.create(post_id = post.post_id, user_id = user_id.id)

Cualquier ayuda es muy apreciada. Gracias de antemano.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Puedes utilizar el método bulk_create para crear múltiples objetos en una sola transacción. Aquí está un ejemplo:

    posts = Post_Tag.objects.filter(tag_id = subcat).values_list('post_id', flat = True)
    post_home_feeds = [Post_Home_Feed(post_id = post.post_id, user_id = user_id.id) for post in posts]
    Post_Home_Feed.objects.bulk_create(post_home_feeds)
    

Comments are closed.