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

191
Visualizações
Uso de QuerySet.update() para actualizar claves específicas en JSONField anidado

Entonces, digamos que tengo un modelo definido de la siguiente manera:

 from django.contrib.postgres.fields import JSONField class Job(models.Model): ... json_data = JSONField(default=dict, blank=True)

El campo approval_coefficient tiene una clave denominada coeficiente_aprobación con valores que van de 0 a 1. Quiero actualizar todos los trabajos con json_data__coeficiente_aprobación como 0,25 a 0,75 sin activar ninguna señal posterior a guardar, en una consulta . Básicamente, quiero usar .update() para trabajar con JSONfield.

Job.objects.filter(json_data__approval_coefficient=0.25).update(json_data...)

esto no funciona (Tal vez haya 50 claves más para cada objeto de trabajo en el campo json_data, y no quiero tocarlas/actualizarlas en absoluto. Solo me preocupa esta clave específica).

Aunque, puedo obtener todos los trabajos usando la consulta de filtro, recorrerla y actualizar cada una de las entradas una por una. Pero esto hace varias consultas de escritura en la base de datos y también activa señales post_save, que no es lo que quiero.

Al investigar un poco, encontré este y este PR que nunca se fusionaron en Django.

¿Como va esto?

Python 3.6.8 Django (2, 2, 0, 'final', 0)

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