我想在django表单中将初始日期设置为昨天我的代码如下:
class Bilag(models.Model):
dato = models.DateField()
tekst = models.CharField(max_length=100)
konto = models.CharField(max_length=10)
avd = models.CharField(max_length=10, null=True,blank=True)
avdnavn = models.CharField(max_length=30, null=True,blank=True)
kasseid = models.CharField(max_length=10)
belop = models.FloatField()
def __unicode__(self):
return self.tekst
class BilagForm(ModelForm):
class Meta:
model = Bilag
widgets = {
'dato': SelectDateWidget()
}
initial = {
'dato': yesterday()
}
昨天的功能是:
def yesterday():
yesterday = (datetime.date.today() - datetime.timedelta(1))
return yesterday
但当我看表格的时候它只显示今天的日期
我认为您在错误的地方定义了initial(
class Meta
)。根据我的理解,应该将它设置为您试图设置初始值的字段的参数。
检查文档:http://docs.djangoproject.com/en/dev/ref/forms/fields/#django.forms.Field.initial
另一种选择是在模型定义中使用字段的
default
参数。 请看这篇文章以获得一些灵感:Django datetime issues (default=datetime.now())您可以在ModelField中设置初始值,不过它将被称为
default
。我想你只想在表格上做,在这种情况下,你需要这样的东西:别忘了,不能在
yesterday
后面包含括号——只要传递可调用的,否则yesterday()
将立即求值而不是动态的(请参见this section的底部)。相关问题 更多 >
编程相关推荐