gpt4 book ai didi

django - 在 Django 管理中漂亮地打印 django.db.models.JSONField?

转载 作者:行者123 更新时间:2023-12-02 19:09:21 26 4
gpt4 key购买 nike

Django >= 3.1 支持新的 JSONField模型字段。我正在使用这样的一个:

from django.db import models

class Example(models.Model):
foobar = models.JSONField()

我还在 Django 的管理部分包含了这个模型。但是,该字段只是一个包含 JSON 的简单文本区域,打印不漂亮。

我怎样才能确保显示在 Django 的管理部分中的 JSON 打印得很好,带有缩进,如下所示:

{
"example": {
"a": 1,
"b": 2
}
}

最佳答案

这是一种无需额外第三方包即可缩进 JSON 字段的方法:

import json

from django import forms
from django.contrib import admin


class PrettyJSONEncoder(json.JSONEncoder):
def __init__(self, *args, indent, sort_keys, **kwargs):
super().__init__(*args, indent=2, sort_keys=True, **kwargs)


class MyModelForm(forms.ModelForm):
json_field = forms.JSONField(encoder=PrettyJSONEncoder)


class MyModelAdmin(admin.ModelAdmin):
form = MyModelForm

关于django - 在 Django 管理中漂亮地打印 django.db.models.JSONField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64555011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com