我有以下JSON
,其中包含员工数据。
all_emp = {"success":true,"data":{"users":
[[{"employeeId":"6","firstName":"Abhishek","lastName":"Amit"},
.
.
.
{"employeeId":"CT045","firstName":"Daniel","lastName":"Swamy"}
]]}}
我有两张表Ideas
和Likes
。
我想显示喜欢这个想法的人的名字。
在喜欢的表中,我存储了user_id
(谁喜欢主意)而idea_id
是外键
我想使用user_id
JSON
替换为该用户的名称
以下是我在视图文件中的代码..
latest_ideas_list = Ideas.objects.order_by('-date_added')
for i in latest_ideas_list:
people_like = Likes.objects.values_list('user_id', flat=True).filter(idea_id=i.idea_id)
for person in people_like:
if any(d["employeeId"] == person for d in all_emp['data']['users']):
person = d['firstName'] + ' '+ d['lastName']
i.likelist = people_like
以下是模板..
{% for person in anidea.likelist %}
<span>{{person}}</span>
{% endfor %}
我收到错误&#34;列表索引必须是整数,而不是str&#34;
我是python和django的新手。需要帮助。
答案 0 :(得分:1)
首先,我想all_emp['data'].['users']
必须是all_emp['data']['users']
而d["employeeId"] == person for d in all_emp['data']['users']
这里d是一个只包含一个元素的列表,然后该元素包含所有雇主数据。
因此,作为快速解决方案,您可以尝试这样做:
d["employeeId"] == person for d in all_emp['data']['users'][0]
答案 1 :(得分:0)
我使用以下代码解决了我的问题。
p_result = []
for person in people_like:
for d in all_emp['data']['users'][0]:
if str(person) in d["employeeId"]:
person = d["firstName"] + ' '+ d["lastName"]
p_result.append(person)
i.likelist = p_result