我有一个模型,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_period
手动添加有效时间的方式添加admin
列。我知道django模型为Date
提供了两种不同的数据类型DateField()
而另一个是DateTimeField()
如果我没有错,DateTimeField()
有两个参数,一个是auto_now
,另一个是auto_now_add
。
更新:
但我担心的是,我必须为管理员提供这样一个模型,管理员可以通过管理界面手动设置有效时间段假设24小时或48小时或1天或2天或管理员面板。
那么在这种情况下,应该手动输入有效时间段的模型的data type
是什么?或者如果datatype
是DateTimeField
那么参数应该是什么? 提到我正在使用django 1.5
答案 0 :(得分:0)
我认为validity_period
应该是整数字段(或字符字段),因为它不是Date
而只是一个可用于检查时间段的数字,如下所示:
例如,让我们创建一个检查订阅有效性的函数。
import datetime
def check_validity(start_time ,validity_period):
if datetime.datetime.now() <= start_time + datetime.timedelta(hours=validy_period):
return True
return False
答案 1 :(得分:0)
它还可以取决于在管理界面中使用何种控件(web元素)来输入有效期。如果管理界面具有日期时间选择器或日历(返回DateTime对象),则为了输入有效期,然后在模型中,validity_period字段可以是DateTimeField()或DateField()类型。但是如果管理员提供的输入比如1天或2天,那么它应该是IntegerField或CharField。