我在这方面看到了多个问题,但对我没有用,所以我会查询我的具体问题 我有一个表,其中有几个外键指向其他表,如下所示:
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和/或severity_name和/或code_name定义搜索条件 - >这将从事件表中提供相关记录
唯一的问题是,现在当我在结果模板中显示它们时,我会显示它们的ID而不是它们的值(Django ORM为每个表添加了id PK)
问题:我如何允许得到事件的查询集的结果html访问System,Severities,EventCodes表中的值,这样我就可以显示它们的字符串值而不是它们的非人类可读ID
答案 0 :(得分:1)
您可以使用.
Django covers this in the documentation
an_event = Events.objects.all()[0]
an_event.system_id_fk.system_id
您的命名约定可能有点令人困惑,因为对于ForeignKey Fields django会自动在模型上创建_id
字段:
system_id_fk = models.ForeignKey(Systems)
上面在db中的system_id_fk_id
表中创建了一个名为events
的列。但是当您访问an_event.system_id_fk
时,它会使用system_id_fk_id
列来查询相关的对象!