Django,使用内置模板在发布后 15 分钟编辑内容

Django, edit content 15 min after posting by using Built-in templates

我正在 django 中开发评论功能。用户应该可以在 post 编辑评论后的 15 分钟内编辑评论。

评论的编辑工作正常,但我不知道如何处理 15 分钟。我的想法是使用 Bullit-in 模板,这样如果 post 不早于 15 分钟,编辑按钮就会出现。这样的:

{% if comment.publication_date - now() <= 15 min %}
    <button type="">Edit comment</button>
{%endif%}

有没有办法像那样实现它,还是我必须以不同的方式实现它?

非常感谢!

干杯

我会在 Comment 模型上创建一个方法,returns 一个布尔值,显示是否可以编辑。

class Comment(models.Model):
    ...

    def can_edit(self):
        fifteen_mins_ago = datetime.datetime.now() - datetime.timedelta(seconds=60*15)
        return self.publication_date >= fifteen_mins_ago

现在您可以直接在模型中使用它了:

{% if comment.can_edit %}
    <button type="">Edit comment</button>
{%endif%}

非常感谢 :) 它可以工作,但你必须使用时区。

def can_edit(self):
    fifteen_mins_ago = timezone.now() - timezone.timedelta(seconds=15 * 60)
    return self.publication_date >= fifteen_mins_ago