Python ModelTranslation、Django管理和小部件

Python ModelTranslation、Django管理和小部件,python,django,python-3.x,django-modeltranslation,Python,Django,Python 3.x,Django Modeltranslation,我正在使用django modeltranslation来翻译我的一个模型。现在一切都很好,只是我以前的小部件不再工作了。它尝试了很多东西,包括: class EmailTemplateAdmin(admin.ModelAdmin): def formfield_for_dbfield(self,db_字段,**kwargs): 如果db_field.name==“body”: kwargs['body']=TinyMCE(attrs={'cols':80',rows':30}) 返回db_fi

我正在使用django modeltranslation来翻译我的一个模型。现在一切都很好,只是我以前的小部件不再工作了。它尝试了很多东西,包括:

class EmailTemplateAdmin(admin.ModelAdmin):
def formfield_for_dbfield(self,db_字段,**kwargs):
如果db_field.name==“body”:
kwargs['body']=TinyMCE(attrs={'cols':80',rows':30})
返回db_field.formfield(**kwargs)
返回super(EmailTemplateAdmin,self).formfield_for_dbfield(db_field,**kwargs)
类TranslatedEmailTemplateAdmin(EmailTemplateAdmin,TabbedTranslationAdmin):
def formfield_for_dbfield(self,db_字段,**kwargs):
field=super(TranslatedEmailTemplateAdmin,self)。formfield\u代表dbfield(db\u字段,**kwargs)
self.patch_translation_字段(db_字段,字段,**kwargs)
返回场
根据关于这个案件的调查,这是正确的做法

我不是在为我自己的问题寻求解决方案,因为我想可能是我自己的代码中的某个东西破坏了这个东西。我只想举一个例子,在django admin中的一个字段上使用一个小部件,该字段使用modeltranslation。。。谢谢!:)


使用Django==1.6.7和Django modeltranslation==0.7.3

注意不要正确重写
ModelAdmin
类的
formfield\u for\u dbfield
方法。看起来您错过了
kwargs.pop('request',None)
并将
kwargs['widget']
kwargs['body']

以下是重写方法:

def formfield_for_dbfield(self, db_field, **kwargs):
    if db_field.name == 'body':
        kwargs.pop('request', None)
        kwargs['widget'] = TinyMCE(attrs={'cols': 80, 'rows': 30})
        return db_field.formfield(**kwargs)
    return super(EmailTemplateAdmin, self).formfield_for_dbfield(db_field, **kwargs)