Django表单:如何显示DateTimeInput小部件的媒体(javascript)?(Django forms: how to display media (javascript) for a

编程入门 行业动态 更新时间:2024-10-26 02:29:28
Django表单:如何显示DateTimeInput小部件的媒体(javascript)?(Django forms: how to display media (javascript) for a DateTimeInput widget?)

您好(请原谅我的英语不好;)),

想象一下下面的课程:

models.py

from django import models class MyModel(models.Model): content_type = models.ForeignKey(ContentType, verbose_name=_('content type')) object_id = models.PositiveIntegerField(_('object id')) content_object = generic.GenericForeignKey('content_type', 'object_id') published_at = models.DateTimeField()

forms.py

from django import forms class MyModelForm(forms.ModelForm): published_at = forms.DateTimeField(required=False, widget=DateTimeInput)

admin.py

from django.contrib import admin form django.contrib.contenttypes import generic class MyModelInline(generic.GenericStackedInline): model = MyModel form = MyModelForm class MyModelAdmin(admin.ModelAdmin): inlines = [MyModelInline]

问题 :来自DateTimeInput小部件的javascript的<script>标记不会出现在管理站点中(添加新的MyModel对象)。 即这两行:

<script type="text/javascript" src="/admin/media/js/calendar.js"></script> <script type="text/javascript" src="/admin/media/js/admin/DateTimeShortcuts.js"></script>

拜托,你有什么想法解决它吗?

非常感谢你,祝你有个美好的一天:)

Hello (please excuse me for my bad english ;) ),

Imagine the classes bellow:

models.py

from django import models class MyModel(models.Model): content_type = models.ForeignKey(ContentType, verbose_name=_('content type')) object_id = models.PositiveIntegerField(_('object id')) content_object = generic.GenericForeignKey('content_type', 'object_id') published_at = models.DateTimeField()

forms.py

from django import forms class MyModelForm(forms.ModelForm): published_at = forms.DateTimeField(required=False, widget=DateTimeInput)

admin.py

from django.contrib import admin form django.contrib.contenttypes import generic class MyModelInline(generic.GenericStackedInline): model = MyModel form = MyModelForm class MyModelAdmin(admin.ModelAdmin): inlines = [MyModelInline]

Problem: the <script> tags for javascript from the DateTimeInput widget don't appear in the admin site (adding a new MyModel object). i.e. these two lines :

<script type="text/javascript" src="/admin/media/js/calendar.js"></script> <script type="text/javascript" src="/admin/media/js/admin/DateTimeShortcuts.js"></script>

Please, do you have any idea to fix it ?

Thank you very much and have a good day :)

最满意答案

标准DateTimeWidget不包含任何javascript。 管理员中使用的小部件是另一个 - django.contrib.admin.widgets.AdminSplitDateTime - 这包括javascript。

The standard DateTimeWidget doesn't include any javascript. The widget used in the admin is a different one - django.contrib.admin.widgets.AdminSplitDateTime - and this includes the javascript.

更多推荐

models,admin,MyModel,javascript,class,电脑培训,计算机培训,IT培训"/> <meta na

本文发布于:2023-08-04 16:52:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1418931.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表单   部件   媒体   DateTimeInput   Django

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!