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