necesito para detectar una señal post_remove, por lo que he escrito:Una señal m2m_changed y error con post_remove
def handler1(sender, instance, action, reverse, model, pk_set, **kwargs):
if (action == 'post_remove'):
test1() # not declared but make a bug if it works, to detect :)
m2m_changed.connect(handler1, sender=Course.subscribed.through)
Si cambio 'post_remove' por 'post_add' que está bien .. ¿Es el insecto de un django sobre post_remove ??
uso ese modelo y me cambio beetween dos valores de 'suscrito' (por lo que uno y uno añade suprimido)
class Course(models.Model):
name = models.CharField(max_length=30)
subscribed = models.ManyToManyField(User, related_name='course_list', blank=True, null=True, limit_choices_to={'userprofile__status': 'student'})
he visto un post con un error de Django, tal vez no ha estado arreglado ... (o soy yo ^^)
realmente no sé cómo hacer que necesito hacer ... No puedo usar señales, ya sea .save() sobrescribir ... Necesito eliminar un usuario de un campo de modelo (m2m) si se lo quita del campo de otro modelo (m2m) ... – nlassaux
I ' No estoy seguro del mejor enfoque. Puede intentar almacenar los objetos relacionados en la instancia con la señal 'pre_save', p. 'instance._old_m2m = list (instance.subscribed.values_list ('pk', flat = True))'. Luego, en su controlador para la señal 'post_add', compare' pk_set' con 'instance._old_m2m'. ¡Buena suerte! – Alasdair
Sí, lo he pensado, pero no está realmente optimizado:/Voy a buscar ... – nlassaux