繁体   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