如何将值从html元素传递到表单字段django
我有一个显示日历的特定html输入元素,是否可以将此元素添加到我的表单并进行验证?我排除了表单中的模型字段,因此在渲染时不能在表单字段中使用如何将值从html元素传递到表单字段django,html,django,forms,django-1.6,Html,Django,Forms,Django 1.6,我有一个显示日历的特定html输入元素,是否可以将此元素添加到我的表单并进行验证?我排除了表单中的模型字段,因此在渲染时不能在表单字段中使用 class AddVisionForm(forms.ModelForm): class Meta: model = Visions exclude = ('init_date', ) 我的方法是将post传递给表单中的save方法:form.save(request.post)
class AddVisionForm(forms.ModelForm):
class Meta:
model = Visions
exclude = ('init_date',
)
我的方法是将post传递给表单中的save方法:form.save(request.post)
,并将值保存到实例:
def save(self, *args, **kwargs):
instance = super(AddVisionForm, self).save(commit=False)
post = args[0]
instance.init_date = post['init_date']
instance.save()
但这会导致如果用户输入了所需日期格式以外的其他值,则会导致站点崩溃您可以使用form类中的Meta小部件自定义html输入 比如说
class AddVisionForm(forms.ModelForm):
class Meta:
model = Visions
widgets = {
'init_date': TextInput(attrs={'class': 'date-calendar'}),
}
您可以使用选择器“.date calendar”处理输入,并使用您喜欢的javascript函数(如jquery ui calendar)将该输入转换为日历。您可以更改初始日期的小部件(可能是隐藏的输入),并使用javascript填充它:
class AddVisionForm(forms.ModelForm):
class Meta:
model = Visions
widgets = {'init_date': forms.HiddenInput()}
您可以采用现场验证过程的方法