Python 如何在django模型中设计一列以手动添加有效时间段
我有一个模型,就是Python 如何在django模型中设计一列以手动添加有效时间段,python,django,Python,Django,我有一个模型,就是SubscribePlan在这里 class SubscribePlan(models.Model): plan = models.CharField(max_length = 200) price = models.IntegerField(default=0) validity_period = models.DateTimeField() number_of_download = models.IntegerField(default =
SubscribePlan
在这里
class SubscribePlan(models.Model):
plan = models.CharField(max_length = 200)
price = models.IntegerField(default=0)
validity_period = models.DateTimeField()
number_of_download = models.IntegerField(default = 0)
这里我想添加一个validity\u period
列,以便admin
手动添加有效期。我知道django模型为Date
提供了两种不同的数据类型,一种是DateField()
,另一种是DateTimeField()
如果我没有错的话,DateTimeField()
有两个参数,一个是auto\u now
,另一个是auto\u now\u add
更新:
但我担心的是,我必须为管理员提供这样一个模型,管理员可以通过管理员界面或管理员面板手动设置一个有效时间段假设为24小时或48小时或1天或2天
那么在这种情况下,可以手动输入有效时间段的模型的
数据类型应该是什么?或者,如果数据类型
是日期时间字段
,那么参数应该是什么说到这里,我使用的是django 1.5我认为有效期应该是整数字段(或字符字段),因为它不是日期,而只是一个可用于检查时间段的数字,如下所示:
例如,让我们制作一个函数来检查订阅的有效性
对于整数字段
导入日期时间
def检查有效期(开始时间、有效期):
如果datetime.datetime.now(),它还可以取决于在管理界面中使用何种控件(web元素)来输入有效期。如果管理员界面有一个日期时间选择器或日历,它返回一个DateTime对象,用于输入有效期,那么在您的模型中,有效期字段可以是DateTimeField()或DateField()类型。但是,如果管理员提供输入,比如1天或2天,那么它应该是IntegerField或CharField
import datetime
def check_validity(start_time ,validity_period):
if datetime.datetime.now() <= start_time + datetime.timedelta(hours=validy_period):
return True
return False