我正在尝试将日历日期输入添加到我的一个表单中。Django在其管理页面上使用了一个很棒的日历小部件,但我不知道如何将它添加到自定义表单中。
我在这里找到了关于同一主题的其他几个问题,但它们似乎都过时了,很复杂,而且不起作用。
有没有办法将Django内置的日历小部件包含到我的表单中?
发布于 2011-03-28 13:50:22
多亏了Dave S和许多关于这个话题的老帖子,我才明白了这一点。我的成功方法:
创建自定义表单。
在顶部,使用from django.contrib.admin.widgets import AdminDateWidget导入管理小部件。然后,添加表单的不同字段,只要您想使用date小部件,就使用my_field = DateField(widget = AdminDateWidget)。
创建表单模板
将以下内容放在顶部以包括相应的css/js文件:
{% load i18n admin_modify adminmedia %}
{% block extrahead %}{{ block.super }}
<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/base.css" />
<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/widgets.css" />
<script type="text/javascript" src="/jsi18n/"></script>
<script type="text/javascript" src="{% admin_media_prefix %}js/core.js"></script>
{{ form.media }}
{% endblock %}注意:根据您的Django版本和实现表单域的方式,您不一定需要所有这些。这就是我发现我需要使用小部件的地方。
现在,只需像普通一样输出表单,JS应该会自动将其转换为日期字段。享受吧!
发布于 2015-09-13 06:38:51
考虑使用Django中内置的普通"SelectDateWidget“,而不是Admin小部件:https://docs.djangoproject.com/en/stable/ref/forms/widgets/#selectdatewidget
发布于 2011-03-28 00:15:00
django-admin使用的所有小部件都在django/contrib/admin/widgets.py文件中。只需在表单中将其用作常用小部件即可。你想要的是AdminDateWidget。
from django.contrib.admin.widgets import AdminDateWidget
from django.forms.fields import DateField
class MyForm(Form):
my_field = DateField(widget=AdminDateWidget)这将创建一个带有日历的日期选择器。您可以尝试通过扩展它来定制它,或者从AdminDateWidget获得灵感,从头开始创建一个新的小部件。
https://stackoverflow.com/questions/5449604
复制相似问题