2015-01-15 21 views
1

在內聯中擴展PageAdmin類時,我似乎遇到權限問題。擴展Django CMS PageAdmin時使用內聯模型時的權限錯誤

從我的調試中,似乎我沒有權限添加管理內聯,因爲以下方法從PageAdmin返回空列表。

def get_inline_classes(self, request, obj=None, **kwargs): 
    if obj and 'permission' in request.path: 
     return PERMISSION_ADMIN_INLINES 
    return [] 

我是一個網站超級用戶,所以你如何獲得許可做到這一點? CMS_PERMISSION = True是在設置(雖然我承認我從來沒有看過這樣做)。

我還沒有嘗試過擴展PageAdmin,但需要擴展Page選項,所以我寫了下面的模型;

class ShowPageChildren(models.Model): 
    page = models.ForeignKey(
     Page, 
     unique=True, 
     verbose_name=_("Page"), 
     editable=False, 
     related_name='child_menu' 
    ) 
    show_children = models.BooleanField(
     default=False 
    ) 
    text = models.CharField(
     max_length=255, 
     help_text=_("To accompany the page title in the menu") 
    ) 

當我加載的基本設置頁面沒有內聯,但我被載有下面admin.py;

class ShowPageChildrenAdmin(admin.StackedInline): 
    print '\n\nShowPageChildrenAdmin\n\n' 
    model = ShowPageChildren 
    can_delete = False 


PageAdmin.inlines.append(ShowPageChildrenAdmin) 
try: 
    admin.site.unregister(Page) 
except: 
    pass 
admin.site.register(Page, PageAdmin) 

這是添加到CMS PageAdmin設置的正確方法嗎?

編輯從以下yakky

答案,我試圖遵循老answer在這裏這使得它看起來像它的工作,在理論上這種實現。所以我只是實現了通常的頁面擴展&添加一個單獨的菜單項到頁面菜單。我還在項目的設置擴展discussion上添加了關於實現此功能的信息。

+0

[如何在django-cms的頁面中添加一些額外的字段可能的重複? (在Django的管理面板)](http://stackoverflow.com/questions/10293641/how-to-add-some-extra-fields-to-the-page-in-django-cms-in-django-admin-面板) – Flimm

+0

@Flimm這個問題的'答案'就是我在這裏做的,導致了一個錯誤。 –

+1

我知道,但問題是一樣的,只是現有的答案不起作用。我已經使用@yakky建議的方式爲此問題添加了答案。 – Flimm

回答