Kra*_*sen 5 python forms django
我想在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()
}
Run Code Online (Sandbox Code Playgroud)
和昨天的功能:
def yesterday():
yesterday = (datetime.date.today() - datetime.timedelta(1))
return yesterday
Run Code Online (Sandbox Code Playgroud)
但它只是在我查看表单时显示今天的日期
您可以在ModelField中设置初始值,但随后会调用它default.我假设您只想在表单上执行此操作,在这种情况下您需要以下内容:
class BilagForm(forms.ModelForm):
dato = forms.DateField(widget=SelectDateWidget(), initial=yesterday)
class Meta:
model = Bilag
Run Code Online (Sandbox Code Playgroud)
不要忘记你不能在括号后包括括号yesterday- 只是传递可调用的,否则yesterday()将立即进行评估而不是动态(参见本节底部).
| 归档时间: |
|
| 查看次数: |
6937 次 |
| 最近记录: |