2011-01-19 5 views
2

Без указания чего-либо шаблоны администратора Django 1.2.4 включают jQuery 1.4.2. Я только что загрузил фреймворк jQuery UI, который пришел с 1.4.4. Таким образом, я хотел бы использовать интерфейс пользовательского интерфейса с 1.4.4. Однако я не уверен, как удалить его из шаблонов администратора Django. Что я должен делать в этой ситуации?Несколько версий jQuery в шаблоне администратора Django

class FooAdmin(admin.ModelAdmin): 

    class Media: 
     # this will cause both jQuery 1.4.2 and 1.4.4 to be included. Not sure if that's a problem or not. 
     js = ("js/foo.js", "js/lib/jquery-1.4.4.min.js", "js/lib/jquery-ui-1.8.8.custom.min.js") 

admin.site.register(Foo, FooAdmin) 

ответ

2

Вы можете переопределить _media свойства из ModelAdmin

Вот _media образует фактический код Джанго.

class FooAdmin(admin.ModelAdmin): 
    def _media(self): 
     from django.conf import settings 

     js = ['js/core.js', 'js/admin/RelatedObjectLookups.js', 
       'js/jquery.min.js', 'js/jquery.init.js'] 
     if self.actions is not None: 
      js.extend(['js/actions.min.js']) 
     if self.prepopulated_fields: 
      js.append('js/urlify.js') 
      js.append('js/prepopulate.min.js') 
     if self.opts.get_ordered_objects(): 
      js.extend(['js/getElementsBySelector.js', 'js/dom-drag.js' , 'js/admin/ordering.js']) 

     return forms.Media(js=['%s%s' % (settings.ADMIN_MEDIA_PREFIX, url) for url in js]) 
    media = property(_media) 

Но может быть, есть лучшее решение

Смежные вопросы