如何在 JSON 模板中正确呈现文本字段中的字符
How to render characters in a textfield correctly in a JSON template
我创建了一个 Django 应用程序,其模型带有 TextField
。当我使用管理界面时,我可以像下面这样填充 TextField
:
但是,当我使用模板在 JSON 中呈现它时,我在浏览器中得到以下信息。 IE。它无法正确处理换行符:
我不确定如何正确处理这个问题,以便我的文本字段中的文本可以根据需要在管理界面中键入,然后正确呈现为 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 数据中显示哪些字段,而不仅仅是 JSON 转储整个模型。
我设法做到了...所以在进一步阅读之后,我认为使用模板并不是呈现 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 显示正确并带有适当的换行符。
我创建了一个 Django 应用程序,其模型带有 TextField
。当我使用管理界面时,我可以像下面这样填充 TextField
:
但是,当我使用模板在 JSON 中呈现它时,我在浏览器中得到以下信息。 IE。它无法正确处理换行符:
我不确定如何正确处理这个问题,以便我的文本字段中的文本可以根据需要在管理界面中键入,然后正确呈现为 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 数据中显示哪些字段,而不仅仅是 JSON 转储整个模型。
我设法做到了...所以在进一步阅读之后,我认为使用模板并不是呈现 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 显示正确并带有适当的换行符。