欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

django admin 傳入json

洪振霞1年前9瀏覽0評論

Django admin是一個強大的管理后臺,可以方便地管理數據。在開發中,我們可能需要向admin中傳入JSON數據。如何傳入JSON數據呢?

我們可以通過定義一個ModelAdmin類,并在其中定義一個自己的form組件來實現。這樣我們就可以自定義實現JSON數據的傳輸。

from django import forms
from django.contrib import admin
from django.forms import widgets
class JsonInput(widgets.TextInput):
def __init__(self, attrs=None):
super(JsonInput, self).__init__(attrs)
def render(self, name, value, attrs=None):
if name:
attrs['name'] = name
attrs['type'] = 'text'
if value:
attrs['value'] = safe(value)
attrs['class'] = attrs.get('class', '')  # 獲取class屬性
attrs['class'] += ' jsoninput'  # 給class屬性增加一個名為jsoninput的樣式
final_attrs = self.build_attrs(attrs)
return super(JsonInput, self).render(name, value, final_attrs)
class MyForm(forms.ModelForm):
jsondata = forms.CharField(widget=JsonInput())
class Meta:
model = MyModel
fields = '__all__'
class MyAdmin(admin.ModelAdmin):
form = MyForm
admin.site.register(MyModel, MyAdmin)

form.MyForm中的jsondata字段使用了我們自定義的JsonInput小部件,它重載了默認的TextInput部件,以將JSON數據放入文本輸入字段中。create方法中使用form字段定義的這個自定義表單。而MyAdmin類繼承于admin.ModelAdmin,用來管理MyModel類相關的所有管理任務。決定了admin應該顯示哪些頁面和哪些基于MyModel的類型應使用相應的屬性。

這樣我們就可以方便地傳輸JSON數據到Django admin中了。