首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自定义表单中的Django日历小部件

自定义表单中的Django日历小部件
EN

Stack Overflow用户
提问于 2011-03-27 21:47:16
回答 6查看 56.8K关注 0票数 28

我正在尝试将日历日期输入添加到我的一个表单中。Django在其管理页面上使用了一个很棒的日历小部件,但我不知道如何将它添加到自定义表单中。

我在这里找到了关于同一主题的其他几个问题,但它们似乎都过时了,很复杂,而且不起作用。

有没有办法将Django内置的日历小部件包含到我的表单中?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-03-28 13:50:22

多亏了Dave S和许多关于这个话题的老帖子,我才明白了这一点。我的成功方法:

创建自定义表单。

在顶部,使用from django.contrib.admin.widgets import AdminDateWidget导入管理小部件。然后,添加表单的不同字段,只要您想使用date小部件,就使用my_field = DateField(widget = AdminDateWidget)

创建表单模板

将以下内容放在顶部以包括相应的css/js文件:

代码语言:javascript
运行
复制
{% 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应该会自动将其转换为日期字段。享受吧!

票数 10
EN

Stack Overflow用户

发布于 2015-09-13 06:38:51

考虑使用Django中内置的普通"SelectDateWidget“,而不是Admin小部件:https://docs.djangoproject.com/en/stable/ref/forms/widgets/#selectdatewidget

票数 23
EN

Stack Overflow用户

发布于 2011-03-28 00:15:00

django-admin使用的所有小部件都在django/contrib/admin/widgets.py文件中。只需在表单中将其用作常用小部件即可。你想要的是AdminDateWidget。

代码语言:javascript
运行
复制
from django.contrib.admin.widgets import AdminDateWidget
from django.forms.fields import DateField

class MyForm(Form):
    my_field = DateField(widget=AdminDateWidget)

这将创建一个带有日历的日期选择器。您可以尝试通过扩展它来定制它,或者从AdminDateWidget获得灵感,从头开始创建一个新的小部件。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5449604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档