我似乎无法弄清楚如何在 Django 中正确处理以下情况:
我在模型中有一个日期范围,我将其存储为两个单独的字段,date_start
and date_end
:
start_date = models.DateTimeField()
end_date = models.DateTimeField()
在此模型的形式中,我想将其表示为一个字段,带有一个标签:
timespan = forms.Field(widget=widgets.SelectDateRangeWidget(), label="Date Range")
现在,我扩展了 MultiWidget 来创建SelectDateRangeWidget
:
class SelectDateRangeWidget(forms.MultiWidget):
...
然后包含两个Date
小部件。我想使用它,但然后将其清理为两个单独的模型字段,并保留将初始数据加载到表单字段中的能力。唯一的办法就是手动设置initial
每次都改变这两个字段的值,也许在__init__
表单的功能,并手动将其清理到这两个模型字段中,或者是否有更干净的(可以这么说)方法来做到这一点?
看来在 django 中使用当前的 widgets API 是不可能的。该票是最古老的 django 票之一,已有 7 年历史:https://code.djangoproject.com/ticket/27 https://code.djangoproject.com/ticket/27 .
您可以从模型表单中排除原始的 2 个字段,创建一个新字段并覆盖表单的保存方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)