django 多级 外键 查找 疑点,请高手解!!
由于view 函数返回了 很多找出来的数据,我不知道怎么把对应的数据 一行行的返回给网页,,view里如果是 一条 filter 语句我知道弄, 但多条而且是 一级一级的查找,完全不知道咋弄了
重要的是要怎么把 三个表的内容拼成一行,也不明白
另外,我也觉这样 几个for 循环,感觉也有点笨.有没有更好的方法 @csrf_exempt
@check_login
def search_result(request):
if request.method=='GET':
return render(request,'search_result.html')
elif request.method=='POST':
project_name=request.POST['project_name']
search_project=ProjectInfo.objects.filter(porject_name_contains=project_name).values_list('id','project_name')
for project_name_c in search_project:
project_id=project_name_c.id
search_order=OrderTicket.objects.filter(id_project=project_id)
for order_id_c in search_order:
order_id=order_id_c.id
search_rebar=Rebar.objects.filter(id_order=order_id) # 怎么样才能把这里的数据 和上面对应的数据拼起来返回给网页,
return render(request,'search_result.html',locals())
建好表和表关系,SQL查询,判断,搞定 本帖最后由 niceyes 于 2021-9-13 15:02 编辑
阿奇_o 发表于 2021-9-13 10:44
建好表和表关系,SQL查询,判断,搞定
def search_result(request):
#定义空字典-------------------------------------------
result_list=[]
if request.method=='GET':
return render(request,'search_result.html')
elif request.method=='POST':
project_name=request.POST['project_name']
print(project_name)
search_project=ProjectInfo.objects.filter(project_name__contains=project_name)
for project_name_c in search_project:
project_id=project_name_c.id
search_order=OrderTicket.objects.filter(id_project=project_id)
for order_id_c in search_order:
order_id=order_id_c.id
search_rebar=Rebar.objects.filter(id_orderticket=order_id)
for rebar_id_c in search_rebar:
#把查询结果生成字典
result_dict={'sample_id':rebar_id_c.id,
'order_id':order_id_c.id,
'project_id':project_name_c.id,
'project_name':project_name_c.project_name,
'sample_name':order_id_c.sample_name,
'sample_type':rebar_id_c.model_diameter,
'order_date':order_id_c.order_date,
'position':rebar_id_c.position,
'test_date':rebar_id_c.test_end_date,
}
#把字典加入列表,然后在网页模板上遍历生成表
result_list.append(result_dict)
print(result_list)
return render(request,'search_result.html',locals())
我后面想了一个办法,把查询结果生成 列表, 但是还是不行, 首先,日期字段 返回一个'order_date': datetime.date(2020, 12, 30), 这个在列表中没引号,语法就不对
另外, 网页模板 遍历list表时出错 理清你的思路:
1. 从models.py 里 能否获取到 正确的 我想要的 数据?
我要在views.py里怎么处理这些数据,并返回给浏览器?
2. 如果 在views.py里 调用模板(templates/../xx.html),模板语法 要注意些什么?
3. 其他问题,问:对象是什么?返回的是什么? 是列表?是字典?字符串? 语法对吗? 官方参考在哪?
页:
[1]