отображать текст в формате json как дружественный список в админке django - PullRequest
3 голосов
/ 08 июля 2010

У меня есть JSONField (http://djangosnippets.org/snippets/1478/) в модели, и я пытаюсь найти лучший способ отображения данных для администратора, а не для json.

Кто-нибудь знаетлучший способ сделать это в админке django?

Например, я бы хотел, чтобы

{u'field_user_name': u'foo bar', u'field_email': u'foo@bar.com'}

отображался как

field_user_name = foo bar
field_email = foo@bar.com

Ответы [ 2 ]

4 голосов
/ 08 июля 2010

Возможно создать собственный виджет?

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)
0 голосов
/ 08 июля 2010

Возможно, вам следует создать шаблонный фильтр для этого:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...