Формы Django: как отобразить мультимедиа (javascript) для виджета DateTimeInput? - PullRequest
1 голос
/ 22 сентября 2009

Здравствуйте (прошу прощения за мой плохой английский;)),

Представьте классы ниже:

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]

Проблема : теги <script> для javascript из виджета DateTimeInput не отображаются на сайте администратора (при добавлении нового объекта 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 Ответ

5 голосов
/ 23 сентября 2009

Стандартный DateTimeWidget не включает в себя JavaScript. Виджет, используемый в админе, другой - django.contrib.admin.widgets.AdminSplitDateTime - и включает в себя JavaScript.

...