【问题标题】:Django forms: how to display media (javascript) for a DateTimeInput widget?Django 表单:如何显示 DateTimeInput 小部件的媒体 (javascript)?
【发布时间】:2009-09-22 19:06:13
【问题描述】:

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

想象一下下面的类:

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>

请问,你有什么解决办法吗?

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-15
    • 2019-03-02
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 2013-08-10
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多