m2m_changed signal registration
Hi,
I am having trouble registering a function to the m2m_changed signal. My code is as follows:
- from django.db.models.signals import m2m_changed
- from django.db import models
- from django.dispatch.dispatcher import receiver
- class Project(models.Model):
- employees = models.ManyToManyField('staff.Person', through='project.PersonProjectMembership',
- related_name='projects')
- class PersonProjectMembership(models.Model):
- project = models.ForeignKey('project.Project', related_name="person_memberships")
- person = models.ForeignKey('staff.Person', related_name="project_memberships")
- lead = models.BooleanField(default=False)
- position = models.CharField(max_length=50)
- project_manager = models.BooleanField(
- default=False
- )
- class Meta:
- permissions = (
- ('view_personprojectmembership', _('View person project membership')),
- )
- @receiver(m2m_changed, sender=Project.employees.through)
- def _on_save_project_assign_privileges(sender, instance, action, reverse, model, pk_set, using, **kwargs):
- # [...]
Somehow it doesn't seem to work, the execution point never reaches the _on_save_project_assign_privileges function when I modify the m2m relation (I am using the admin interface for that). On the other side, I have another method registered to the post_save signal for the same object and it works correctly.
I have read the signals documentation -concretely the m2m_changed-, re-read my code, googled for it, asked in other sites... but I have not been able to find a solution. Any help please? Thanks!
Roberto

0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home