Django 表单:如何为 DateTimeInput 小部件显示媒体(javascript)?
你好(请原谅我的英语不好 ;)),
想象一下下面这些类:
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]
问题:在管理后台(添加一个新的 MyModel 对象)中,DateTimeInput 组件的 <script>
标签没有显示出来。也就是说,这两行:
<script type="text/javascript" src="/admin/media/js/calendar.js"></script>
<script type="text/javascript" src="/admin/media/js/admin/DateTimeShortcuts.js"></script>
请问,你有什么想法可以解决这个问题吗?
非常感谢,祝你有美好的一天 :)
1 个回答
5
标准的日期时间小工具里面没有任何JavaScript代码。而在管理后台使用的是一个不同的小工具,叫做 django.contrib.admin.widgets.AdminSplitDateTime
,这个小工具里面是包含了JavaScript的。