django日期字段是charfield
我正在使用django.forms模型表单。我有一个DoB,它是“datefield”,然而,当我显示DoB的形式时,它显示的像charfield。我应该怎么做才能让用户选择日期?感谢您的帮助。多谢各位 型号:django日期字段是charfield,django,Django,我正在使用django.forms模型表单。我有一个DoB,它是“datefield”,然而,当我显示DoB的形式时,它显示的像charfield。我应该怎么做才能让用户选择日期?感谢您的帮助。多谢各位 型号: dob = models.DateField(validators=[MinValueValidator(18), MaxValueValidator(70)],blank=True, null = True, verbose_name="Day of birth")
dob = models.DateField(validators=[MinValueValidator(18), MaxValueValidator(70)],blank=True, null = True, verbose_name="Day of birth")
HTML:
{{edit_profile | crispy}}
{%csrf_令牌%}
拯救
不幸的是,Django的默认
表单.DateField
仅呈现为
-标记
要获得该属性,您需要为其指定type=“date”
属性
可以这样做:
#forms.py
类MyForm(forms.ModelForm):
# ... 字段定义
定义初始化(self,*args,**kwargs):
super()
self.fields['dob'].widget.attrs.update({'type':'date'})
这将呈现为以下HTML格式:
当然,您不必在表单的init方法中执行此操作。
您可以在任何可以访问表单字段的地方执行此操作
编辑:或者您可以使用javascript日期选择器,例如。不幸的是,Django的默认值为
表单。日期字段
仅呈现为
-标记
要获得该属性,您需要为其指定type=“date”
属性
可以这样做:
#forms.py
类MyForm(forms.ModelForm):
# ... 字段定义
定义初始化(self,*args,**kwargs):
super()
self.fields['dob'].widget.attrs.update({'type':'date'})
这将呈现为以下HTML格式:
当然,您不必在表单的init方法中执行此操作。
您可以在任何可以访问表单字段的地方执行此操作
编辑:或者您可以使用javascript日期选择器,如。我过去遇到过类似的问题。对此有一个非常小的修正。在
forms.py
中进行以下更改:
from django.forms import ModelForm
from .models import Model_Name
class EquipmentForm(ModelForm):
class Meta:
model = Model_Name
fields = 'dob'
widgets = {'dob': DateInput()}
这应该能解决你的问题我过去曾遇到过这样的问题。对此有一个非常小的修正。在
forms.py
中进行以下更改:
from django.forms import ModelForm
from .models import Model_Name
class EquipmentForm(ModelForm):
class Meta:
model = Model_Name
fields = 'dob'
widgets = {'dob': DateInput()}
class EditProfile(forms.ModelForm):
class Meta:
model = Profile
fields = ('full_name', 'dob','introduction','twitter','facebook','linked','hobbies', 'stock', 'weather',)
def __init__(self, *args, **kwargs):
super(EditProfile,self).__init__(*args, **kwargs)
self.fields['dob'].widget = forms.DateInput(attrs={ 'type': 'date'})
这会解决你的问题
class EditProfile(forms.ModelForm):
class Meta:
model = Profile
fields = ('full_name', 'dob','introduction','twitter','facebook','linked','hobbies', 'stock', 'weather',)
def __init__(self, *args, **kwargs):
super(EditProfile,self).__init__(*args, **kwargs)
self.fields['dob'].widget = forms.DateInput(attrs={ 'type': 'date'})