簡體   English   中英

覆蓋 formfield_for_dbfield 的 Django 管理類 - 錯誤

[英]Django Admin Classes that Override formfield_for_dbfield - Error

我的 django 網站上有一堆 FlatPages,我想使用 django-modeltranslations pacakge 從管理員那里翻譯不同語言的內容。 這是我的代碼:

class TinyMCEFlatPageAdmin(FlatPageAdmin):    
    def formfield_for_dbfield(self, db_field, **kwargs):
        if db_field.name.startswith('content'):
            return db_field.formfield(widget=TinyMCE(attrs={'cols': 80, 'rows': 30},))
        return super().formfield_for_dbfield(db_field, **kwargs)

基本上,我從默認的 FlatPageAdmin 創建了一個 TinyMCEFlatPageAdmin class 以在管理站點上的 HTML 中顯示 Flatpage 內容。 就翻譯而言,我添加了以下代碼:

class MyTranslatedFlatPageAdmin(TinyMCEFlatPageAdmin, TabbedTranslationAdmin):
    def formfield_for_dbfield(self, db_field, **kwargs):
        field = super().formfield_for_dbfield(db_field, **kwargs)
        self.patch_translation_field(db_field, field, **kwargs)
        return field

然后我注冊了新的 MyTranslatedFlatPageAdmin class:

admin.site.unregister(FlatPage)
admin.site.register(FlatPage, MyTranslatedFlatPageAdmin)

當我登錄到平面內容頁面時,我收到以下錯誤:

formfield_for_dbfield() takes 2 positional arguments but 3 were given

我正在努力找出原因,因為一切似乎對我來說都是正確的。 在此先感謝您的幫助

我通過降級到版本 0.13.1 來修復它。 package 的 0.15.0 版本似乎存在錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM