这是我在Web开发中的第一个项目,我正在使用Django构建项目预订系统。
要求:如果用户保留项目并使用超过一周,则会向他发送一封电子邮件以重新确认项目使用情况。
每封电子邮件都会有一个链接,显示用户使用超过一周的所有项目,项目将根据用户决定发布或continue_to_use。
这是一个场景,用户打开电子邮件中提供的链接两次(可能更多),因为我说每个打开的链接都会有他正在使用的项目列表。 在“第一个”链接中,用户取消选中一个项目并提交它然后,他将转到“第二个”链接(显然包含错误的数据)并尝试取消选中某个项目并提交它。 当用户在“第二个”链接中提交时,我想抛出一个错误,说你已经执行了这个操作。
我的解决方案是使用表中的字段(数据库中的user_table)说“link_used”,当用户使用“first”链接时我将存储“yes”,当他使用第二个链接时,代码将检查 “link_used”列并发出错误消息。
发送下一封邮件时,此“link_used”列将重置。
我的解决方案是否正确?
用Google搜索并找不到与我的方案相关的解决方案。
答案 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
通过这种方式,您可以保留所有代码及其用法的历史记录。