django - 覆盖 formfield_for_dbfield 的 Django 管理类 - 错误
问题描述
我的 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 类,以在管理站点上以 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 类:
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, MyTranslatedFlatPageAdmin)
当我登录到平面内容页面时,我收到以下错误:
formfield_for_dbfield() takes 2 positional arguments but 3 were given
我正在努力找出原因,因为一切似乎对我来说都是正确的。在此先感谢您的帮助
解决方案
我通过降级到版本 0.13.1 来修复它。软件包的 0.15.0 版本似乎存在错误。
推荐阅读
- hibernate - Hibernate 中 LockMode.PESSIMISTIC_WRITE 和 LockMode.UPGRADE_NOWAIT 的区别
- python-3.x - 如何在定义的代码中编辑变量?
- java - 将 .txt 文件中的数据存储到数组中并创建排名
- java - IntelliJ Idea 2018.2 没有导入 gradle 项目的选项
- pandas - 带有 index_col= 参数的 pd.read_csv 截断前导零
- python - 创建具有日期时间每小时频率的数据框
- python - .lower() for x in list,不工作,但在另一种情况下工作
- ruby-on-rails - Rails 使用引用自身的表创建分组无序列表?
- windows - 我在哪里插入我的 DJI Windows SDK 应用程序密钥
- php - 获得用户对服务帐户的同意