简体   繁体   English

覆盖 formfield_for_dbfield 的 Django 管理类 - 错误

[英]Django Admin Classes that Override formfield_for_dbfield - Error

I have a bunch of FlatPages on my django website and would like to translate their content in different languages from the Admin using the django-modeltranslations pacakge.我的 django 网站上有一堆 FlatPages,我想使用 django-modeltranslations pacakge 从管理员那里翻译不同语言的内容。 Here is my code:这是我的代码:

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)

Basically, I created a TinyMCEFlatPageAdmin class from the default one FlatPageAdmin to display the Flatpage content in HTML on the admin site.基本上,我从默认的 FlatPageAdmin 创建了一个 TinyMCEFlatPageAdmin class 以在管理站点上的 HTML 中显示 Flatpage 内容。 As far as the translation is concerned, i added the following code:就翻译而言,我添加了以下代码:

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

I have then registered the new MyTranslatedFlatPageAdmin class:然后我注册了新的 MyTranslatedFlatPageAdmin class:

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

When i log in to the flatpage content page i receive the following error:当我登录到平面内容页面时,我收到以下错误:

formfield_for_dbfield() takes 2 positional arguments but 3 were given

I am struggling to find out why as everything seems to be correct to me.我正在努力找出原因,因为一切似乎对我来说都是正确的。 Thanks in advance for your help在此先感谢您的帮助

I fixed it by downgrading to version 0.13.1.我通过降级到版本 0.13.1 来修复它。 It seems a bug with the version 0.15.0 of the package. package 的 0.15.0 版本似乎存在错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 覆盖Django admin内联以为每个实例请求formfield_for_dbfield的最简单方法 - simplest way to override Django admin inline to request formfield_for_dbfield for each instance django admin formfield_for_dbfield引发多次 - django admin formfield_for_dbfield raises multiple times “formfield_overrides” vs “formfield_for_dbfield()” vs “form” vs “get_form()” 更改 Django Admin 中字段的宽度 - "formfield_overrides" vs "formfield_for_dbfield()" vs "form" vs "get_form()" to change the width of the field in Django Admin django admin formfield for manytomany无法正常工作 - django admin formfield for manytomany not working Django 管理站点:如何让 formfield_overrides 覆盖 models.CharField 与选择 - Django admin site: how to get formfield_overrides to override models.CharField with choices 管理员表单上缺少django-admin formfield - django-admin formfield is missing on the admin form Django管理员自定义选择formfield选择 - Django admin custom choice formfield choice Django | formfield_for_manytomany - 管理员中的名称显示 - Django | formfield_for_manytomany - name display in admin 在 Django 管理员中过滤表单字段查询集时如何不丢失数据 - How not to lose data when filtering formfield querysets in Django admin django admin inlines:从 formfield_for_foreignkey 获取对象 - django admin inlines: get object from formfield_for_foreignkey
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM