Я пытаюсь изменить существующую Django Mezzanine установку, чтобы я мог вести блог в Markdown.У мезонина есть «базовая» модель с содержимым в виде HtmlField, которое определяется следующим образом:
from django.db.models import TextField
class HtmlField(TextField):
"""
TextField that stores HTML.
"""
def formfield(self, **kwargs):
"""
Apply the class to the widget that will render the field as a
TincyMCE Editor.
"""
formfield = super(HtmlField, self).formfield(**kwargs)
formfield.widget.attrs["class"] = "mceEditor"
return formfield
Проблема возникает из widget.attrs ["class"] mceEditor.Мои мысли заключались в том, чтобы обезьяна исправить поле «Содержимое» на объекте «Блог»
class BlogPost(Displayable, Ownable, Content):
def __init__(self, *args, **kwargs):
super(BlogPost, self).__init__(*args, **kwargs)
self._meta.get_field('content').formfield = XXX
Мои проблемы заключаются в том, что мои навыки работы с питоном не сводятся к замене связанного метода лямбда-выражением, которое вызывает super
.
formfield вызывается администратором, когда он хочет создать поле для отображения на страницах администратора, поэтому мне нужно исправить это, чтобы объекты виджета BlogPost НЕ имели класс mceEditor (я пытаюсь выйтиmceEditor на все остальное)
Как вы создаете функцию замены?Я почти уверен, что прикрепляю его с
setattr(self._meta.get_field('content'), 'formfield', method_i_dont_know_how_to_write)