更新:
其他信息:
Python版本:3.4
操作系统:Windows
Django:18年11月1日
MySQL 8
模型.py
mailing_address = models.JSONField()
views.py
# 插入数据时
data.locations = json.dumps(request.POST.getlist('locations'))
data.save()
# 检索数据时
my_requests_queryset = ListingModel.objects.filter(owner=request.user)
返回渲染(request, 'home/home_dashboard_my_requests.html', {'my_requests_queryset': my_requests_queryset})
我在 MySQL 数据库中存储了一个邮寄地址列表,例如:
['1212 Los Angeles, CA', 'Nariman Point, Mumbai, India']
我希望在 HTML 模板中打印列表中的每个元素。不幸的是,每个字符都被打印出来。
现在,当我尝试在 Django 模板中迭代列表时,我得到每个字符而不是每个列表元素。
我尝试过 Django 库 django-mysql 来实现 native JSONField
。
尝试使用内置模板过滤器、with
、cycle
、as list
等在 Django 模板中构建列表。
<div class="container">
{% if my_requests_queryset and my_requests_queryset|length > 0 %}
{% for req in my_requests_queryset %}
<div class="row mb-1">
<div class="col-lg-2"></div>
<div class="col-lg-8">
<a href="#" class="card-link">
<div class="card text-center">
<div class="card-header">
{{ req.title|title|truncatechars:36 }}
</div>
<div class="card-body">
<h5 class="card-title">
{% for address in req.locations %}
{{ address }}
{% endfor %}
</h5>
</div>
</div>
</a>
</div>
</div>
{% endfor %}
{% endif %}
</div>
我希望将列表中的每个元素打印为:
1212 Los Angeles, CA
Nariman Point, Mumbai, India
最佳答案
这里的问题是,我使用 json.dumps()
将数据插入数据库,该数据被转换为 String
类型。
因此,我需要执行 json.loads()
才能整齐地显示数据。
因此,为了解决这个错误,我直接将值插入数据库,例如
locations = request.POST.getlist('locations')
而不是
locations = json.dumps(request.POST.getlist('locations'))
关于python - 如何将 MySQL 数据库中表示为列表的字符串转换为 Django 模板中的列表,以便我可以对其进行迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54461301/