python - 如何将 MySQL 数据库中表示为列表的字符串转换为 Django 模板中的列表,以便我可以对其进行迭代?

标签 python mysql django django-models django-templates

更新:

其他信息:

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

尝试使用内置模板过滤器、withcycleas 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/

相关文章:

c# - EF6/LINQ MySQL - 无法插入

django - 在 Django 模板中有条件地扩展 base.html

python - 通过双击使 Python 脚本可执行

python - 将图像转换为位图

java - 获取FK异常涉及的特定列

mysql - 考虑 RAM 的 url 或散列索引

django - 合并两个 Haystack 查询集的结果

html - 如何在 Django 中将按钮单击重定向到另一个 URL?

python - Maya:如何使用python导入fbx?

python - 如何在python中将数据库记录逐 block 写入文件