2009-09-22 5 views
1

Bonjour (s'il vous plaît excusez-moi pour mon mauvais anglais;)),Formulaires Django: comment afficher un média (javascript) pour un widget DateTimeInput?

Imaginez les classes ci-dessous:

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] 

Problème: les balises pour <script> javascript à partir du widget DateTimeInput ne figurent pas dans le site d'administration (ajout d'un nouvel objet MyModel). c'est-à-dire ces deux lignes:

<script type="text/javascript" src="/admin/media/js/calendar.js"></script> 
<script type="text/javascript" src="/admin/media/js/admin/DateTimeShortcuts.js"></script> 

S'il vous plaît, avez-vous une idée pour le résoudre?

Merci beaucoup et bonne journée :)

Répondre

5

Le DateTimeWidget standard ne comprend pas javascript. Le widget utilisé dans l'admin est un autre - django.contrib.admin.widgets.AdminSplitDateTime - et cela inclut le javascript.

+1

Code spécifique pour implémenter cette solution sur http://stackoverflow.com/questions/38601/using-django-time-date-widgets-in-custom-form/38916#38916 –

Questions connexes