簡體   English   中英

Django模板外鍵遍歷

[英]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.

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