Django针对布尔字段设置日期

时间:2014-08-09 08:17:08

标签: python django boolean-logic

我是 python django 的新手。我正在使用django开发网站。我已经为用户提供了在我的网站上传内容的选项。

但是如果管理员批准了这些内容,那么这些内容将在网站上显示。为了获得批准,我在我的模型中添加了布尔字段,就像那​​样,

Class content(models.Model):

    content_name = models.CharField(max_length = 100)
    content = models.ImageField(upload_to = 'photos', blank=False,null=True)
    approved = models.BooleanField(default = False)
    uploaded_time = models.DateTimeField()

现在,当用户上传任何内容时,首先它存储在数据库中,默认情况下,已批准的字段仍为False,或者您可以说内容正在等待管理员批准。

然后,如果管理员批准它,那么允许内容显示在网站上。一切顺利。 但我想跟踪审批时间

请记住,管理员可以在存储在数据库中的内容之后批准或单击布尔字段。现在我的问题是,如何在管理员批准内容时跟踪审批时间?

1 个答案:

答案 0 :(得分:0)

您可以遵循一个简单的方法。为您的模型添加createdmodified字段。因此,每当用户添加一些内容时,created字段将具有创建内容的时间戳,并且当管理员批准时,内容modified字段将具有批准内容的时间戳。

您可以为您的模型使用以下代码:

from django.db import models

class TimeStampedModel(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

class content(TimeStampedModel):
    content_name = models.CharField(max_length = 100)
    content = models.ImageField(upload_to = 'photos', blank=False,null=True)
    approved = models.BooleanField(default = False)

实际上,您可以将此练习扩展到所有模型,以跟踪字段何时被修改以及何时创建。只需扩展模型类的TimeStampedModel模型即可。