[英]Django templates foreign key traversal
我看到了多個問題,但對我沒有用,因此我將查詢有關我的特定問題的信息,我有一個表,其中有幾個指向其他表的外鍵,如下所示:
class EventCodes(models.Model):
code_name = models.CharField(max_length=25)
class Severities(models.Model):
severity_name = models.CharField(max_length=15)
class Systems(models.Model):
system_id = models.CharField(max_length=15)
class Events(models.Model):
system_id_fk = models.ForeignKey(Systems)
severity_fk = models.ForeignKey(Severities)
code_fk = models.ForeignKey(EventCodes)
我還有一個模板,該模板允許用戶根據system_id和/或嚴重性名稱和/或代碼名稱定義搜索條件->這將為我提供“事件”表中的相關記錄
唯一的問題是,現在當我在結果模板中顯示它們時,我將顯示它們的ID而不是它們的值(Django ORM為每個表添加了ID PK)
問題:如何允許獲得事件的查詢集的結果html訪問系統,嚴重性,事件代碼表中的值,以便我可以顯示其字符串值而不是其非人類可讀的ID
您可以通過使用訪問屬性來擴展關系.
Django在文檔中介紹了這一點
an_event = Events.objects.all()[0]
an_event.system_id_fk.system_id
您的命名約定可能會有些混亂,因為django對於ForeignKey Fields會自動在模型上創建一個_id
字段:
system_id_fk = models.ForeignKey(Systems)
上面的代碼在數據庫的events
表中創建了一個名為system_id_fk_id
的列。 但是,當您訪問an_event.system_id_fk
,它將使用system_id_fk_id
列查詢相關的對象!!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.