在Django中对布尔字段设置日期
我刚接触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 个回答
1
你可以用一个简单的方法来解决这个问题。给你的模型添加两个字段,一个叫 created
,另一个叫 modified
。这样,每当用户添加内容时,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
模型就可以了。