欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django admin顯示json字段方法詳解

 更新時間:2023年06月21日 14:50:12   作者:alue  
這篇文章主要為大家介紹了Django admin顯示json字段方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

默認(rèn)的 json 顯示

如圖所示,如果 Django 模型中含有 json 字段, 在 admin 后臺默認(rèn)的顯示非?;靵y,不利于數(shù)據(jù)維護(hù)。 那么有什么好的方式呢?

這里給出一個不依賴于第三方庫的處理方法。思路是,用自定義 JSON widget 代替 admin 默認(rèn)的 text_input.

定義 widget 類如下

import json  
from django.contrib import admin  
from django.db.models import JSONField  
from django.forms import widgets  
class PrettyJSONWidget(widgets.Textarea):  
    def format_value(self, value):  
        try:  
            value = json.dumps(json.loads(value), indent=2, sort_keys=True)  
            row_lengths = [len(r) for r in value.split('\n')]  
            self.attrs['rows'] = min(max(len(row_lengths) + 2, 10), 30)  
            self.attrs['cols'] = min(max(max(row_lengths) + 2, 40), 120)  
            return value  
        except Exception as e:  
            return super(PrettyJSONWidget, self).format_value(value)

使用 widget 的方式:我們繼承 admin.ModelAdmin,并且覆蓋 JSONField 的 widget:

class JsonAdmin(admin.ModelAdmin):  
    formfield_overrides = {  
        JSONField: {'widget': PrettyJSONWidget}  
    }
admin.site.register(MyModel, JsonAdmin)

優(yōu)化之后的 json 顯示

配置后,json 字段的顯示

可以看出, 此時的 json 字段更加利于閱讀和修改。

以上就是Django admin顯示json字段方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Django admin顯示json的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論