如何使用自定义django AdminSite实例注册Feincms页面模块的自定义管理员

时间:2013-07-01 15:37:33

标签: django django-admin feincms

我尝试通过子类化或修补它来修改feincms PageAdmin。当我使用自定义AdminSite实例时,两者都不起作用:MediaLibrary exentsion按钮(它们出现在Page.create_content_type(MediaFileContent...之后)在我这样做时消失。

from django.contrib import admin
from feincms.module.page.modeladmins import PageAdmin
from feincms.module.page.models import Page

paii_admin = admin.AdminSite(name='paii_admin')
paii_admin.index_template = 'admin/cms/index.html'

class SitePageAdmin(PageAdmin):
    def queryset(self, request):
        return super(SitePageAdmin, self).queryset(request)

paii_admin.register(Page, PageAdmin)

1 个答案:

答案 0 :(得分:0)

我明白了。

你也应该注册MediaFile(来自medialibrary):

paii_admin.register(MediaFile, MediaFileAdmin)

feincms/templates/admin/feincms/_content_type_buttons.html我们有以下内容:

{% url "admin:medialibrary_mediafile_changelist" as media_library_url %}
[...]
{% if media_library_url %}
    }, {
        type: 'mediafilecontent',
        keep: true,
        cssclass: 'imagecontent',
        raw_id_picker: '{{ media_library_url }}?type__exact=image&pop=1'
    }, {
        type: 'gallerycontent',
        keep: true
    }, {
        type: 'mediafilecontent',
        keep: true,
        cssclass: 'pdfcontent',
        raw_id_picker: '{{ media_library_url }}?type__exact=pdf&pop=1'
{% endif %}

仅当medialibrary注册到命名空间

时,这些字段才由JS填充
相关问题