Django Административные классы, которые переопределяют formfield_for_dbfield - Ошибка - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть куча FlatPages на моем django веб-сайте, и я хотел бы перевести их содержимое на разные языки от администратора с помощью пакета django -modeltranslations. Вот мой код:

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)

По сути, я создал класс TinyMCEFlatPageAdmin из стандартного FlatPageAdmin для отображения содержимого Flatpage в HTML на сайте администратора. Что касается перевода, я добавил следующий код:

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

Я изо всех сил пытаюсь выяснить, почему, поскольку все мне кажется правильным. Заранее благодарим за помощь

1 Ответ

0 голосов
/ 28 апреля 2020

Я исправил это путем понижения до версии 0.13.1. Кажется, ошибка с версией пакета 0.15.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...