python Django如何以id作为key获取值并在模板中显示

egdjgwm8  于 2023-05-27  发布在  Python
关注(0)|答案(1)|浏览(159)

我有一个这样的DICT:

{4: {'26.00': "{'tac': {'4.99': '1.30'}}"}, 2: {'32.00': "{'tac': {'4.99': '1.60'}}"}}

其中4和2是各自的用户ID。
我将DICT发送到模板,并且我还可以在for循环中访问用户ID。是否可以只将数据提供给模板中的相应用户:
我想学习一个锻炼,以获得每个用户的dict数据的user.id。
有可能做这样的事情吗?记住DICT不在任何模型中。因此,它是在模板渲染之前生成的静态数据。

user_name: John
user_email: j@j.com
user_id = 2
amount = 32.00
tac = 4.99 : 1.60   

user_name: Charles
user_email: c@c.com
user_id = 4
amount = 26.00
tac = 4.99 : 1.3

非常感谢你的任何想法和方向来解决它。

6ljaweal

6ljaweal1#

我已经解决了这个问题,我希望能帮助其他人。
你可以做的是在你的视图中,在用户循环中,在用户对象中添加要发送到前端的数据。
首先,我为subTotal和taxDict添加了一个键。在本例中,users的id是4,2。我的字典是这样的。

{4: {'subTotal': '26.00', 'taxDict': "{'tac': {'4.99': '1.30'}}"}, 2: {'subTotal': '32.00', 'taxDict': "{'tac': {'4.99': '1.60'}}"}}

然后在视图中,我在用户对象中执行了一个循环:在我创建的循环中(可以是字母或单词作为变量),在我的情况下是“x”。我的字典在一个名为DATADICT的变量中。

user = User.objects.filter(is_approved=True)
for u in user:
    u.x = DATADICT[u.id]['subTotal']

然后将user作为上下文传递给模板。

return render(request, 'home.html', { 'user': user,})

在模板中,您可以:

{% for u in user %}
{{ u.x }}
{% endfor %}

您将从DATADICT获得subTotal数据,因为它是一个模型字段。在这种情况下:32.00 26.00
就是这样:-)

相关问题