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

281
Visualizações
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 Respostas
Responde à pergunta

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 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