0

TextFieldのモデルでDjangoアプリケーションを作成しました。私は、テンプレートを使用してJSONでそれをレンダリングする際にJSONテンプレートでテキストフィールドの文字を正しくレンダリングする方法

Admin interface with TextField

しかし、私は私のブラウザ上で以下のようになります。私は、管理インタフェースを使用すると、以下のようにのように、私はTextFieldを移入することができます。私。それは、このようなとして正しく改行を処理することはできません。

Web browser with rendered JSON

私のテキストフィールドからテキストが入力できるように、管理インターフェイス内で必要として、レンダリングされたとして、私は、これを正しく処理する方法がわかりませんJSONとして正しくここで

は私のmodel.pyからの抜粋です:ここでは

@python_2_unicode_compatible 
class Venue(models.Model): 
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) 
    name = models.CharField(max_length=50, blank=False, null=False) 
    description = models.TextField(blank=False, null=False) 
    def __str__(self): 
     return self.name 

views.pyここ

def venues(request): 
    venues_list = Venue.objects.order_by('-name') 
    context = {'venues_list':venues_list} 
    return render(request, 'myapp/venues.json', context, content_type='application/json') 

内の関数は、私のvenue.jsonテンプレートです:

[ 
    {% for venue in venues_list %} 
     { 
      "venue_id":"{{venue.id}}", 
      "name":"{{venue.name}}", 
      "description":"{{venue.description}}" 
     } 
     {% if forloop.last %}{% else %}, {% endif %} 
    {% endfor %} 
] 

何かお手伝いしましたか?

P.S.テンプレートが良いアプローチであるかどうかは不明です。しかし、モデル全体をダンプするだけでなく、どのフィールドがJSONデータに表示されるかを制御したいのです。

答えて

0

私はそれを行うことができました...続きを読むと、テンプレートを使用することはJSONデータを表示するための最良の方法ではないと判断しました。 JsonResponseを使用してJSONデータの表示を正しく処理できることが判明しました。

ここで私のテンプレートを削除して、このように表示するために私の関数をviews.pyに書き直しました。 django.httpインポートJsonResponse から

...

def venues(request): 
    venues_list = Venue.objects.order_by('-name') 
    venue_array =[] 

    for venue in venues_list: 
     record = {"venue_id":venue.id, "name":venue.name, "description":venue.description} 
      venue_array.append(record) 

    return JsonResponse(venue_array, safe=False) 

すべては今、適切な改行と正しく私のJSONディスプレイとして、正常に動作します。

関連する問題