uwsgi.log에

AttributeError: 'dict' object has no attribute 'is_hidden' 관련 오류가 뜬다.

그 이유는

class MenuAdmin(DraggableMPTTAdmin):
...
   fieldsets = (
        (None, {"fields": ("site",)}),
        (("Menu Info"), {"fields": ("menu_name", "menu_desc", "menu_url", "menu_sort_order", "parent_menu")}),
        (("Permissions"), {"fields": ("menu_isEnabled", "groups")}),
        (("Creator/Modifier"), {"fields": (("menu_crte_dt", "menu_crte_user"), ("menu_mdfy_dt", "menu_mdfy_user"))}),
    )

위 소스와 같이 fieldsets정의시 위의 bold구문으로 같은 라인에 여러 field 출력하고자 할때

/Lib/site-packages/django/contrib/admin/templates/admin/includes/fieldset.html 의 {% if field.field.is_hidden %} hidden{% endif %}구문에서

is_hidden 속성이 없다는 에러 로그가 쌓이는 것이다.

해결 방안은

/Lib/site-packages/django/contrib/admin/helpers.py 에서 아래와 같이 수정한다.

...

class AdminReadonlyField:
    def __init__(self, form, field, is_first, model_admin=None):
        # Make self.field look a little bit like a field. This means that
        # {{ field.name }} must be a useful class name to identify the field.
        # For convenience, store other field-related data here too.
        if callable(field):
            class_name = field.__name__ if field.__name__ != '<lambda>' else ''
        else:
            class_name = field

        if form._meta.labels and class_name in form._meta.labels:
            label = form._meta.labels[class_name]
        else:
            label = label_for_field(field, form._meta.model, model_admin, form=form)

        if form._meta.help_texts and class_name in form._meta.help_texts:
            help_text = form._meta.help_texts[class_name]
        else:
            help_text = help_text_for_field(class_name, form._meta.model)

        self.field = {
            'name': class_name,
            'label': label,
            'help_text': help_text,
            'field': field,
            'is_hidden': False, # 추가
        }

...