diff --git a/froide/guide/models.py b/froide/guide/models.py index da00f91e6..11fc5369f 100644 --- a/froide/guide/models.py +++ b/froide/guide/models.py @@ -78,6 +78,14 @@ def wrapper(self): return wrapper +class LazyStr: + def __init__(self, func): + self.func = func + + def __str__(self): + return str(self.func()) + + class Guidance(models.Model): message = models.ForeignKey(FoiMessage, on_delete=models.CASCADE) action = models.ForeignKey(Action, null=True, blank=True, on_delete=models.CASCADE) @@ -123,10 +131,14 @@ def get_context(self): "user": user, "name": user.get_full_name(), "message": self.message, - "action_url": "{}-guidance".format(self.message.get_autologin_url()), + "action_url": LazyStr( + lambda: "{}-guidance".format(self.message.get_autologin_url()) + ), } if self.action and self.action.letter_template_id: - ctx["action_url"] = user.get_autologin_url(self.get_letter_url()) + ctx["action_url"] = LazyStr( + lambda: user.get_autologin_url(self.get_letter_url()) + ) return ctx @render_with_context