Reputation:
Here two of my model classes:
class DashboardVersion(models.Model):
name = models.CharField(_("Dashboard name"),max_length=100)
description = models.TextField(_("Description/Comment"),null=True,blank=True)
modifier = models.ForeignKey(User,editable=False,related_name="%(app_label)s_%(class)s_modifier_related")
modified = models.DateField(editable=False)
class Goal(models.Model):
goal = models.TextField(_("Goal"))
display_order = models.IntegerField(default=99999)
dashboard_version = models.ForeignKey(DashboardVersion)
When a Goal is edited, added, deleted, etc., I want to change the DashboardVersion.modifier to the user who modified it and the DashboardVersion.modifed to the current date.
I am trying to implement this using signals. It seems though, that the post_save signal does not contain the request
. Or can I get it from somewhere or do I have to create my own signal?
Or, should I do something completely different?
Thanks! :-) Eric
Upvotes: 2
Views: 2198
Reputation: 48962
I'd say the most straightforward thing to do would be to just update the DashboardVersion
in the view that processes the Goal
update. If you have multiple views in the same module that handle Goal
updates, you could factor out the DashboardVersion
update logic into a separate function.
If you're dead set on using signals, you could probably hack something together with a thread locals middleware, but I'd say the simplest approach is usually best.
Upvotes: 1