I am trying to assign some values to a model field after post-save.The model is
class Authority(models.Model):
no_of_feeds=models.PositiveIntegerField()
no_of_rf=models.PositiveIntegerField()
no_of_urf=models.PositiveIntegerField()
class Feed(models.Model):
auth=models.ForeignKey(Authority,blank=False)
@receiver(post_save, sender = Feed)
def update_model_feed(sender, **kwargs):
if kwargs['created']: #only fire when creating new objects
kwargs['instance'].auth.no_of_feeds=kwargs['instance'].auth.feed_set.all().count()
kwargs['instance'].auth.no_of_rf=kwargs['instance'].auth.feed_set.filter(resolved=True).count()
kwargs['instance'].auth.no_of_urf=kwargs['instance'].auth.feed_set.filter(resolved=False).count()
print '******************************'
elif not kwargs['created']:
kwargs['instance'].auth.no_of_feeds=kwargs['instance'].auth.feed_set.all().count()
kwargs['instance'].auth.no_of_rf=kwargs['instance'].auth.feed_set.filter(resolved=True).count()
print '-------------------------------'
kwargs['instance'].auth.no_of_urf=kwargs['instance'].auth.feed_set.filter(resolved=False).count()
As you can see,The signal is used to assign values to Authority
fields after saving Feed
model.This works in shell,as the fields are automatically updated but it doesnt work on creating or editing a feed instance in admin or front-end website.Though its print out the '-------' and '****' on execution in the console.Pls kindly help