Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在django模型中设计一列以手动添加有效时间段_Python_Django - Fatal编程技术网

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