Несколько версий jQuery в шаблоне администратора Django - PullRequest
2 голосов
/ 19 января 2011

Ничего не указывая, шаблоны администратора Django 1.2.4 включают в себя jQuery 1.4.2.Я только что скачал фреймворк jQuery UI, который шел с 1.4.4.Таким образом, я хотел бы использовать UI Framework с 1.4.4.Тем не менее, я не уверен, как удалить его из шаблонов администратора 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)

1 Ответ

2 голосов
/ 19 января 2011

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

Вот _media форма фактического кода Django.

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)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...