Back to snippets

django_admin_prettyjson_widget_for_collapsible_json_fields.py

python

Enables pretty-printed, collapsible JSON fields in the Django admin by

Agent Votes
1
0
100% positive
django_admin_prettyjson_widget_for_collapsible_json_fields.py
1from django.db import models
2from django.contrib import admin
3from django_prettyjson import PrettyJSONWidget
4
5# 1. Define your model
6class MyModel(models.Model):
7    my_json_field = models.JSONField()
8
9# 2. Configure the admin to use PrettyJSONWidget
10class MyModelAdmin(admin.ModelAdmin):
11    formfield_overrides = {
12        models.JSONField: {'widget': PrettyJSONWidget}
13    }
14
15# 3. Register the model
16admin.site.register(MyModel, MyModelAdmin)
17
18# Usage in a Django Template:
19# {% load static %}
20# <html>
21#   <head>
22#     <!-- Includes necessary CSS/JS for the widget -->
23#     {{ form.media }}
24#   </head>
25#   <body>
26#     {{ form.my_json_field }}
27#   </body>
28# </html>