2017-10-09 90 views
-1

我无法将django 3rd模型(类Jenkinsjobsinformation)的数据显示为模板。有可能从第一和第二模型(项目名和Jenkinsjobsname)公布的数据。下面找到我的模型:无法将模型数据从db显示到模板

+0

我不明白你卡在哪里。你知道如何使用'{%url%}'标签;你有'jenkinsjobname'变量可用;为什么你不能使用它? –

+0

你还没有解释你试过的是什么以及为什么你感到困惑。正如我所说的,您已经在其他地方成功使用过'{%url%}';你为什么不能在这里使用它? –

回答

1

添加方法get_absolute_url到模型Jenkinsjobsname

class Jenkinsjobsname(models.Model): 
    projectname=models.ForeignKey(Projectname) 
    jobsname = models.CharField(max_length=200) 
    def __str__(self): 
     return self.jobsname 

    def get_absolute_url(self): 
     return reverse('job_detail', 
         kwargs={'projectname_id': self.projectname.pk, 'jobinformation_id': self.pk} 

在模板中更改链接:

<li><a href="{{jenkinsjobsname.get_absolute_url}}">{{jenkinsjobsname.jobsname}}</a></li> 

你也可以直接做到这一点,但这种方式也Django管理员将拿起链接。 get_absolute_url是一个Django约定:https://docs.djangoproject.com/en/1.11/ref/models/instances/#get-absolute-url

+0

非常感谢。它现在正在显示。是否有任何方法可以减少到一个模板而不是三个模板index.html,detail.html和job_detail.html? – jisan

+0

要重复使用模板的某些部分 - 使用含有{%include'my_partial_template.html'%}'的部分模板 - 如果您确实只想使用一个模板,则必须将状态标志添加到您的模板环境中用于决定要显示哪些部分以及哪些不显示 - 除非您可以通过仅检查上下文中已存在的对象来决定。这不是问题的一部分 - 更好地询问另一个问题,或只是看Django文档的灵感。 – Risadinha

+0

非常感谢。我会问另一个问题。 – jisan