gpt4 book ai didi

Django Forms - 在 View 中设置字段值

转载 作者:行者123 更新时间:2023-12-04 07:58:44 24 4
gpt4 key购买 nike

我有一个代表工作订单的模型。其中一个字段是 DateField,表示创建工作订单的日期(恰本地命名为:dateWOCreated)。当用户创建新的工作订单时,我希望这个 dateWOCreated 字段自动填充今天的日期,然后显示在模板中。我还有一些其他字段,我想在没有用户干预的情况下进行设置,但应该在模板中向用户显示这些值。

我不想简单地从 modelForm 类中排除这些字段,因为用户可能需要能够在以后编辑这些值。

有什么帮助吗?

谢谢

最佳答案

定义模型时,可以设置 default 对于每个字段。默认对象可以是可调用对象。为您 dateWOCreated我们可以使用可调用字段 date.today .

# models.py
from datetime import date

class WorkOrder(models.Model):
...
dateWOCreated = models.DateField(default=date.today)

MM/DD/YYYY 格式显示日期,您需要覆盖模型表单中的小部件。
from django import forms
class WorkOrderModelForm(forms.ModelForm):
class Meta:
model = WorkOrder
widgets = {
'dateWOCreated': forms.DateInput(format="%m/%d/%Y")),
}

在表单和模型表单中,默认参数的模拟是初始的。对于其他字段,您可能需要在 View 中动态计算初始字段值。我在下面举了一个例子。见 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'})
...

关于Django Forms - 在 View 中设置字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5924253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com