我正在使用django 3.0,并且试图在ModelForm中显示一个datepicker小部件,但是我不知道如何(我只能得到文本字段)。我试图寻找一些解决方案,但找不到任何解决方案。这是我的模型和我的ModelForm的样子:
class Membership(models.Model):
start_date = models.DateField(default=datetime.today, null=True)
owner = models.ForeignKey(Client, on_delete=models.CASCADE, null=True)
type = models.ForeignKey(MembershipType, on_delete=models.CASCADE, null=True)
class MembershipForm(ModelForm):
class Meta:
model = Membership
fields = ['owner', 'start_date', 'type']
widgets = {
'start_date': forms.DateInput
}
这是我的html:
<form class="container" action="" method="POST">
{% csrf_token %}
{{ form|crispy }}
<button type="submit" class="btn btn-primary">Submit</button>
</form>
这是预期的行为。甲DateInput
插件[Django的DOC]仅仅是一个<input type="text">
具有一个可选的元素format
参数。
您可以使用包,例如django-bootstrap-datepicker-plus
[pypi],然后使用定义一个表单DatePickerInput
:
from bootstrap_datepicker_plus import DatePickerInput
class MembershipForm(ModelForm):
class Meta:
model = Membership
fields = ['owner', 'start_date', 'type']
widgets = {
'start_date': DatePickerInput
}
在模板中,您将需要呈现表单的媒体并加载bootstrap css和javascript:
{% load bootstrap4 %}
{% bootstrap_css %}
{% bootstrap_javascript jquery='full' %}
{{ form.media }}
<form class="container" action="" method="POST">
{% csrf_token %}
{{ form|crispy }}
<button type="submit" class="btn btn-primary">Submit</button>
</form>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句