Изменение размера полей, доступных для чтения, в Django Admi

В моей админке Django в настоящее время JSONField отображается как readonly, данные JSON довольно большие и занимают около 80-90% страницы. Я смог найти ответ на вопрос о том, как можно изменить размер поля, не доступного для чтения здесь, но дальше я заблудился. В моем идеальном случае большие JSON-данные должны быть представлены в текстовом поле с возможностью прокрутки, например, так: Идеальный исход

Как контролировать размер поля, доступного для чтения, не обрезая данные?

Самый простой способ - создать метод "custom-field" в ModelAdmin вместо поля readonly в форме и отобразить его в виде прокручиваемого div:

class MyModelAdmin(ModelAdmin):
    
    fields = ...., my_custom_field_mehod, ...
    readonly_fields = ...., my_custom_field_mehod, ...
    
    def my_custom_field_mehod(self, object=None):
        if obj:
            return mark_safe(f'<div class="scrollable">{obj.my_json_data}</div>')
        return ''

Больше информации о "custom-field" здесь: https://docs.djangoproject.com/en/5.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.readonly_fields

Вернуться на верх