使用只能使用一次的链接向用户发送邮件

时间:2012-11-28 06:24:31

标签: django web

这是我在Web开发中的第一个项目,我正在使用Django构建项目预订系统。

要求:如果用户保留项目并使用超过一周,则会向他发送一封电子邮件以重新确认项目使用情况。

每封电子邮件都会有一个链接,显示用户使用超过一周的所有项目,项目将根据用户决定发布或continue_to_use。

这是一个场景,用户打开电子邮件中提供的链接两次(可能更多),因为我说每个打开的链接都会有他正在使用的项目列表。 在“第一个”链接中,用户取消选中一个项目并提交它然后,他将转到“第二个”链接(显然包含错误的数据)并尝试取消选中某个项目并提交它。 当用户在“第二个”链接中提交时,我想抛出一个错误,说你已经执行了这个操作。

我的解决方案是使用表中的字段(数据库中的user_table)说“link_used”,当用户使用“first”链接时我将存储“yes”,当他使用第二个链接时,代码将检查 “link_used”列并发出错误消息。

发送下一封邮件时,此“link_used”列将重置。

我的解决方案是否正确?

用Google搜索并找不到与我的方案相关的解决方案。

1 个答案:

答案 0 :(得分:0)

通过这样做,你将失去历史,并要求运行条件。

为链接/电子邮件创建单独的模型,类似于下面的示例。

class OneTimeCode(models.Model):

    user = models.ForeignKey('auth.User')
    code = models.CharField(…)
    date_sent = models.DateTimeField(auto_now_add=True, …)
    date_used = models.DateTimeField(null=True, …)

    @property
    def link_used(self):
        return self.date_used is not None

通过这种方式,您可以保留所有代码及其用法的历史记录。