我有一个相当简单的模型表单,其中包含' date_of_birth' datefield()类型的输入值。无论出于何种原因,我无法将其显示为小部件,只能将其显示为文本输入。
这是我的表单代码: 来自django进口表格 来自。进口车型 来自django.contrib.admin导入小部件
class CreateNewPatient(forms.ModelForm):
class Meta:
model = models.PatientInfo
fields = ['first_name', 'nickname','last_name',
'date_of_birth', 'school_grade', 'sex', 'school']
这是我的模特:
class PatientInfo(models.Model):
#first name, last name,nickname, and date of birth
first_name = models.CharField(max_length=100)
nickname = models.CharField(max_length=100, blank=True)
last_name = models.CharField(max_length=100)
date_of_birth = models.DateField(auto_now=False, auto_now_add=False)
school_grade = models.CharField(max_length=15, blank=True)
这是我的模板。它基于一个基本模板,并使用bootstrap4插件:
{% block content %}
<!--Form Container-->
<div class="container">
<form action="{% url 'patientRecords:new_patient' %}" method="post"
class="form">
{% csrf_token %}
{% bootstrap_form form %}
{% buttons %}
<button type="submit" class="btn btn-primary">Submit</button>
{% endbuttons %}
</form>
</div>
{% endblock %}
就像我说的那样,表单将出生日期字段显示为文本框。如何将其显示为具有引导样式的普通django日期窗口小部件?
答案 0 :(得分:3)
class Meta:
model = CreateNewPatient
fields = ['first_name', 'nickname','last_name',
'date_of_birth', 'school_grade', 'sex', 'school']
widgets = {
'date_of_birth': forms.DateInput(format=('%m/%d/%Y'), attrs={'class':'form-control', 'placeholder':'Select a date', 'type':'date'}),
}
那是我如何让我的工作。希望它有所帮助!
应该是这样的:enter image description here
答案 1 :(得分:0)
widgets = {
'date_of_birth': forms.DateInput(format=('%d-%m-%Y'), attrs={'firstDay': 1, 'pattern=': '\d{4}-\d{2}-\d{2}', 'lang': 'pl', 'format': 'yyyy-mm-dd', 'type': 'date'}),
}
最重要的是:
'type':'date'
in attrs