【发布时间】:2018-09-01 14:39:18
【问题描述】:
我有一个相当简单的模型表单,其中包含 datefield() 类型的“date_of_birth”输入值。无论出于何种原因,我都无法将其显示为小部件,只能将其显示为文本输入。
这是我的表单代码: 从 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 日期小部件?
【问题讨论】:
-
文本输入是日期字段的输入小部件。管理员中的日期选择器是一个 javascript 插件。您可以使用文本输入,添加一些 javascript 来制作日期选择器小部件,或者可以选择将日期字段拆分为月、日和年三个字段。
-
正如@Walucas 所说,您应该考虑使用第三个库,例如 Boostrap datepicker
标签: python html django django-forms