python - 在截止时间后锁定操作投票,在 Django 中编辑投票实例时解锁

标签 python django

正如我在标题中所说,我希望允许用户对名为 Course 的实例进行投票,并在 72 小时3 后锁定投票天(在我的示例中,为 2 分钟)。我遇到困难的是,如果类(class)已由其所有者编辑,我希望允许用户编辑投票。类(class)编辑时,必须解锁所有投票。

How bad today is, All the logic are gone, I can't think anymore, already tear off multiple sheets of paper!

到目前为止,我可以锁定投票,我的意思是我认为我锁定了它。

''' stuff '''
if vote:
    NOW = datetime.datetime.now()
    DEADLINE = 2 # minutes
    if (NOW - course.date_edited).total_seconds() < (DEADLINE * 60):
        vote.amount = amount
        vote.save()
 else:
     vote = Vote.objects.create(
        user = user,
        amount = amount,
        content_object = course,
     )

date_edited 的 2 个模型在数据库中设置为 auto_now_add = True

我认为另一种方法是在编辑类(class)时编辑类(class)所有投票的日期,例如:

   course.votes.all().update(date_voted=....) # I am not sure

让我知道该怎么做。预先感谢您!

最佳答案

您可以为 date_voted 字段设置 auto_now=True,并使用 auto_now_add=True 添加 date_vote_created。并在您看来,检查在此日期之后类(class)是否也已更改:

if vote:
    NOW = datetime.datetime.now()
    DEADLINE = 2 # minutes
    if course.date_edited > vote.date_voted or (NOW - vote.date_vote_created).total_seconds() < (DEADLINE * 60):
        vote.amount = amount
        vote.save()

UPD

要在类(class)更改后解锁投票两分钟,您可以在单独的 if block 中重置 date_vote_created

if vote:
    NOW = datetime.datetime.now()
    DEADLINE = 2 # minutes
    if course.date_edited > vote.date_voted:
        vote.date_vote_created = NOW
        vote.save()
    if course.date_edited > vote.date_voted or (NOW - vote.date_vote_created).total_seconds() < (DEADLINE * 60): 
        vote.amount = amount
        vote.save()

UPD#2

if course.date_edited > vote.date_voted:
    vote.amount = amount
    vote.date_vote_created = NOW
    vote.save()
elif (NOW - vote.date_vote_created).total_seconds() < (DEADLINE * 60): 
    vote.amount = amount
    vote.save()
else:
    print("Vote locked")

关于python - 在截止时间后锁定操作投票,在 Django 中编辑投票实例时解锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51428576/

相关文章:

python - python进程/线程映射在Windows中如何工作?为什么线程比进程运行得更快?

python - 为什么 Django 迁移在不使用时在非默认数据库上创建表?

Django将文件上传到取决于POST URI的特定目录

django - 动态表单字段集

python - 错误 models.py Django

python - 即使找到 Qt 平台插件也未加载

python - Django过滤多个值

python - {% include ... %} 标签和 Django 模板中的 {% ssi ... parsed %} 标签有什么区别?

django - 在 Django Rest Framework + Django Social Auth 中连接 Facebook

python - Pandas bool 数据框搜索返回 False 但应该为 True