在我的第一个django应用程序上工作,我有一个模型定义了一些DateFields
,然后是一个ModelForm
模型,即
models.py
class MyModel(models.Model): ... my_date = models.DateField('my date') ... class MyModelForm(ModelForm): class Meta: model = MyModel fields = '__all__'
views.py
def show(request): form = MyModelForm template_name = 'myapp/show.html' return render(request,template_name,{'form':form})
然后在我的HTML中我使用.as_p
django为我渲染表单
但是DateFields
有输入类型文本,而不是日期.有没有办法改变这个?
您可以创建自定义小部件:
from django import forms class DateInput(forms.DateInput): input_type = 'date' class MyModelForm(forms.ModelForm): class Meta: model = MyModel fields = '__all__' widgets = { 'my_date': DateInput() }
没有必要继承DateInput
.
class MyModelForm(forms.ModelForm): class Meta: model = MyModel fields = '__all__' widgets = { 'my_date': DateInput(attrs={'type': 'date'}) }