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

时间:2009-09-22 19:06:14

标签: python django django-models django-admin django-forms

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

想象一下这些课程:

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>

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

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

1 个答案:

答案 0 :(得分:5)

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