我是django的新手,我想在另一个表中显示与外键相关的字段。
我想职业表从表颜色中获取了career_tag_name和hex_code。我已经尝试了Career.objects.raw()这是www.example.com中的查询views.py:
careers = Career.objects.raw('''SELECT website_career_tag.career_tag_name,website_color.hex_code, website_career.*
from website_career INNER JOIN website_career_tag on website_career_tag.id = website_career.career_tag_id_id
LEFT JOIN website_color on website_career_tag.color_id_id = website_color.ID''')
它工作得很完美,直到我想使用filter()by career_tag_name。当我使用查询集时,它比使它成为原始的过滤器更容易。
如何将这些原始查询转换为查询集?
1条答案
按热度按时间unftdfkk1#
使用Django自己的ORM总是比使用原始查询更好,而且也很简单。Django的查询集总是存储所有相关的表信息,你只需要从对象中引用它们。例如,对于职业列表视图,你可以获得所有的职业信息,并选择相关的字段,以使模板中的循环成本更低:
然后在模板中将相关对象引用为: