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

287
Vistas
Actualice el campo del modelo y cualquier otro campo en django

¿Es posible actualizar un campo y al guardarlo debería guardar otros campos con nuevos cambios?

Por ejemplo, tengo el siguiente modelo,

 class Backup(models.Model): user=models.ForeignKey(User) title=models.CharField(max_length=200) is_approve=models.BooleanField(default=False) is_bad=models.BooleanField(default=False) country=models.CharField(max_length=100)

Ahora, mi objetivo principal es simplemente hacer que el campo is_approve sea True . Mi objetivo secundario es actualizar otros campos junto con el campo is_approve , en caso de que el usuario realice cambios antes de hacer clic en el botón approve en la plantilla.

 @staff_member_required def activate_moderation(request, backup_id=None): if id: vpostmod=get_object_or_404(Backup, id=backup_id) vpostmod.is_approve =1 vpostmod.save()

¿Cómo puedo conectar instancias de todos los campos junto con save(), para realizar los cambios después de establecer is_approve en True.

ACTUALIZACIÓN A LA PREGUNTA DE DANIEL

El modelo tiene un ModelForm 'Backup'. Los formularios se procesan a través del administrador de Django (BackupAdmin) utilizando el mismo modelo de formulario de "copia de seguridad".

Pasé el enlace de mi botón invocando el lugar change_form en mi carpeta admin/app_name/modelname/.

 def render_change_form(self, request, context, *args, **kwargs): backup= self.get_object(request, self.backup_id) context.update({'backup':backup}) return super(BackupAdmin, self).render_change_form(request, context, *args, **kwargs)

Y la plantilla de formulario de cambio es así:

 {% block submit_buttons_bottom %} <div class="submit-row"> {% if backup.is_approve %} <p>pass</p> {% else %} <a href="{% url 'activate_moderation' backup.id %}" class="historylink"> <input type="button" value="{% trans 'Approve' %}" name="_approvebutton" /></a> <input type="button" value="{% trans 'Reject' %}" name="_rejectbutton" /> {% endif %} </div> {{ block.super }} {% endblock %}
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Tienes varias opciones.

El primero es sobrescribir el método de guardar en el modelo de copia de seguridad:

 #Backup def save(self, *args, **kwargs): if self.pk: previous_Backup = Backup.objects.get(self.pk).is_approve super(Backup, self).save(*args, **kwargs) if self.pk and self.is_approve != previous_Backup: #make changes

El segundo es la función vinculante para publicar la señal de guardado + el rastreador de campo de utilidades del modelo django :

 @receiver(post_save, sender=Backup) def create_change_backup(sender,instance, signal, created, **kwargs): if created: previous_Backup = get it from django model utils field tracker #make changes
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