Django - 在列表视图中获取ForeignKey对象的Id

时间:2016-10-08 23:06:53

标签: django

我有两个由外键链接的模型。 RunConfig RunConfig 状态

class RunConfig(models.Model):
    config_name = models.CharField(max_length=100)

class RunConfigStatus(models.Model):
    config_run_name     = models.CharField(max_length=200,unique=True )
    config_name         = models.ForeignKey('RunConfig',on_delete=models.CASCADE,)        
    Overall_Status      = models.CharField(max_length=50,blank=True,null=True)

我目前正在使用RunConfigStatus的CBV列表视图。我想将外键对象href /链接到其详细视图。这有可能吗?

class RunConfigStatusListView(LoginRequiredMixin,ListView):
    model = RunConfigStatus
    context_object_name = 'run_config_status_list'

在我的模板上:

{% for run in run_config_status_list %}

 <td><a href={% url 'runconfigstatus-detail' pk=run.id %}>{{run.config_run_name}}</a></td>

  <td>{{run.config_name}}</td>                          
  <td>{{run.Overall_Status}}</td>

我希望config_name应该有一个href,它将重定向到RunConfig详细信息视图

 <td><a href={% url 'runconfig-detail' pk=**NOT SURE** %}>{{run.config_name}}</a></td>

我当前输出的屏幕截图enter image description here

我想点击配置名称值,它应该重定向到其详细信息视图。 (在这种情况下,测试,所有条目的MyFirstTest)

1 个答案:

答案 0 :(得分:2)

当然有可能。您已经访问了runco​​nfig名称,您可以使用pk执行完全相同的操作:

<a href="{% url 'runconfig-detail' pk=run.config_name.id %}">

但是你应该为外键选择一个不那么令人困惑的名字;字段config_name未指向名称,它指向RunConfig实例。