簡體   English   中英

如何顯示 django 查詢集中的相關外鍵?

[英]How do i show related foreign key in django query set?

我是 django 的新手,我想在另一個表中顯示與外鍵相關的字段。 這是桌子。

在此處輸入圖像描述

我想職業表從表顏色中獲取 career_tag_name 和 hex_code。 我試過 Career.objects.raw() 這是 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''')

它工作得很好,直到我想通過 career_tag_name 使用 filter()。 當我使用查詢集時,它比原始過濾更容易。

我如何將這些原始查詢設置為查詢集?

使用 django 自己的 ORM 而不是原始查詢總是更好,而且它也很容易。 Django querysets 始終在各處存儲所有相關表信息,您應該只從 object 引用它們。例如,對於職業列表視圖,您可以獲得所有職業信息和 select 相關字段,以降低模板中循環的成本:

careers = Career.objects.select_related('career_tag_id', 'career_tag_id__color_id')

然后在模板中將相關對象引用為:

{% for career in careers %}
{{ career.career_tag_id.career_tag_name }}
{{ career.career_tag_id.color_id.color_name }}
{% endfor %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM