Django 1.11.4 に upgrade したところ、widgets.py以下のエラーが発生しました。
対処方法を記載します。

  File "/usr/local/lib/python2.7/site-packages/django/utils/html.py", line 376, in <lambda>
    klass.__unicode__ = lambda self: mark_safe(klass_unicode(self))
  File "/usr/local/lib/python2.7/site-packages/django/forms/boundfield.py", line 41, in __str__
    return self.as_widget()
  File "/usr/local/lib/python2.7/site-packages/django/forms/boundfield.py", line 127, in as_widget
    **kwargs
  File "/usr/local/lib/python2.7/site-packages/mezzanine_pagedown/widgets.py", line 41, in render
    final_attrs = self.build_attrs(attrs, name=name)


対処方法

以下、同じ問題で落ちていたbefore after を見つけました。

Django 1.11 support by vstoykov · Pull Request #364 · django-ckeditor/django-ckeditor

対象箇所は以下のように修正すればいいようです。

  • Django 1.10 までの記載

        final_attrs = self.build_attrs(attrs, name=name)
    

  • Django 1.11 からの記載

        final_attrs = self.build_attrs(self.attrs, attrs, name=name)
    
        # 以下、メソッドを追加する
        def build_attrs(self, base_attrs, extra_attrs=None, **kwargs):
            """
            Helper function for building an attribute dictionary.
            This is combination of the same method from Django<=1.10 and Django1.11+
            """
            attrs = dict(base_attrs, **kwargs)
            if extra_attrs:
                attrs.update(extra_attrs)
            return attrs
    

Version Up時はちょいちょい落ちますね。
以上です。

コメント