Gar*_*nzo 8 django django-models django-forms django-views
我有一个代表工单的模型.其中一个字段是DateField,表示工作订单的创建日期(恰当地命名为:dateWOCreated).当用户创建新的工作订单时,我希望此dateWOCreated字段自动填充今天的日期,然后显示在模板中.我有一些其他字段,我想在没有用户干预的情况下设置,但应该在模板中向用户显示这些值.
我不想简单地从modelForm类中排除这些字段,因为用户可能需要能够在路上编辑这些值.
有帮助吗?
谢谢
定义模型时,可以default为每个字段设置a .默认对象可以是可调用的.对于你的dateWOCreated领域,我们可以使用callable date.today.
# models.py
from datetime import date
class WorkOrder(models.Model):
...
dateWOCreated = models.DateField(default=date.today)
Run Code Online (Sandbox Code Playgroud)
要以格式显示日期MM/DD/YYYY,您需要覆盖模型表单中的小部件.
from django import forms
class WorkOrderModelForm(forms.ModelForm):
class Meta:
model = WorkOrder
widgets = {
'dateWOCreated': forms.DateInput(format="%m/%d/%Y")),
}
Run Code Online (Sandbox Code Playgroud)
在表单和模型表单中,默认参数的模拟是初始的.对于其他字段,您可能需要动态计算视图中的初始字段值.我在下面举一个例子.有关详细信息,请参阅Django Docs for Dynamic Initial Values.
# views.py
class WorkOrderModelForm(forms.ModelForm):
class Meta:
model = WorkOrder
def my_view(request, *args, **kwargs):
other_field_inital = 'foo' # FIXME calculate the initial value here
form = MyModelForm(initial={'other_field': 'other_field_initial'})
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11208 次 |
| 最近记录: |