当前位置:  开发笔记 > 编程语言 > 正文

Django form.as_p DateField没有将输入类型显示为日期

如何解决《Djangoform.as_pDateField没有将输入类型显示为日期》经验,为你挑选了2个好方法。

在我的第一个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_pdjango为我渲染表单

{% csrf_token %} {{ form.as_p }}

但是DateFields有输入类型文本,而不是日期.有没有办法改变这个?



1> 小智..:

您可以创建自定义小部件:

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()
        }


有谁知道为什么这不是默认的?

2> jhrr..:

没有必要继承DateInput.

class MyModelForm(forms.ModelForm):
    class Meta:
        model = MyModel
        fields = '__all__'
        widgets = {
            'my_date': DateInput(attrs={'type': 'date'})
        }

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有