我在模型中有一个JSONField(http://djangosnippets.org/snippets/1478/),我试图找出向管理员用户而不是json显示数据的最佳方式。
有没有人知道在django admin中执行此操作的最佳方法?
例如,我想
{u'field_user_name': u'foo bar', u'field_email': u'foo@bar.com'}
显示为
field_user_name = foo bar
field_email = foo@bar.com
答案 0 :(得分:4)
也许创建一个自定义小部件?
class FlattenJsonWidget(TextInput):
def render(self, name, value, attrs=None):
if not value is None:
parsed_val = ''
for k, v in dict(value):
parsed_val += " = ".join([k, v])
value = parsed_val
return super(FlattenJsonWidget, self).render(name, value, attrs)
答案 1 :(得分:0)
也许您应该创建一个模板过滤器来执行此操作:
from django import template
from django.utils import simplejson as json
register = template.Library()
@register.filter
def json_list(value):
"""
Returns the json list formatted for display
Use it like this :
{{ myjsonlist|json_list }}
"""
try:
dict = json.loads(value)
result = []
for k, v in dict.iteritems():
result.append(" = ".join([k,v]))
return "<br/>".join(result)
except:
return value