Django表单:如何显示DateTimeInput小部件的媒体(javascript)?

use*_*455 1 python django django-models django-forms django-admin

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

想象一下以下课程:

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()
Run Code Online (Sandbox Code Playgroud)

forms.py

from django import forms

class MyModelForm(forms.ModelForm):
    published_at = forms.DateTimeField(required=False, widget=DateTimeInput)
Run Code Online (Sandbox Code Playgroud)

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]
Run Code Online (Sandbox Code Playgroud)

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

<script type="text/javascript" src="/admin/media/js/calendar.js"></script>
<script type="text/javascript" src="/admin/media/js/admin/DateTimeShortcuts.js"></script>
Run Code Online (Sandbox Code Playgroud)

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

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

Dan*_*man 5

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