• Home
  • Django
  • Pass parameters from save to signal method

Pass parameters from save to signal method

linkaiyi
Follow

Pass parameters from save to signal method

Use save method in adminForm or other Form as another post indicated. or use existing field, such as update_fields

def save(self, *args, **kwargs):
            if self.__original_active != self.active:
            update_fields = kwargs.pop('update_fields', [])
            kwargs['update_fields'] = update_fields + ['active']

        super(Customer, self).save(*args, **kwargs)

#####

@receiver(models.signals.post_save, sender=Mandant)
@receiver(models.signals.post_save, sender=Leads)
@receiver(models.signals.post_save, sender=Supplier)
def deactivate_person(sender, instance, *args, **kwargs):
    update_fields = kwargs.pop('update_fields', [])
    if update_fields and 'active' in update_fields:
        if not instance.active:
            for relation in ContactPersonAssociation.objects.filter(contact=instance.contact_ptr):
                if relation.person:
                    other_relation = ContactPersonAssociation.objects.filter(person=relation.person).exclude(
                        contact=instance.contact_ptr)
                    if other_relation.count() == 0:
                        relation.person.active = False
                        relation.person.save()
                else:
                    relation.delete()
        else:
            for relation in ContactPersonAssociation.objects.filter(contact=instance.contact_ptr):
                if relation.person:
                    relation.person.active = True
                    relation.person.save()
                else:
                    relation.delete()

model manager for Django Admin

Django admin use always the first model manager


# django admin use the normal objects
objects = models.Manager()
actives = ActivePersonManager()

# django admin use actives as default manager
actives = ActivePersonManager()
objects = models.Manager()
Object has 0 attachments

Was this article helpful?

This article is viewed 14 times!

0 Comments

Leave a Comment

Support