在模板django

时间:2015-05-01 06:03:23

标签: django templates views

我基本想要做的是检查用户是否已在作业列表中申请了一个或多个作业。

在我看来,我有:

jobs = Job.objects.filter(status='open').order_by('-created_at')

在我的模板中,我有:

{% if user == job.creator %}
  {% if not job.get_applicants %}
    <div class = "status wait"><span class = "icon-Coffee" aria-hidden="true"></span><p>Venter</p></div>
  {% elif job.get_numb_applicants == 1 %}
    <div class = "status"><h2>{{job.get_numb_applicants}}</h2><p>Interessert</p></div>
  {% else %}
    <div class = "status"><h2>{{job.get_numb_applicants}}</h2><p>Interesserte</p></div>
  {% endif %}
{% else %}
   <!-- Want to check if user has applied for job here-->
   <div class = "status">
     <span class = "icon-Circle" aria-hidden="true"></span>
     <p>Åpen</p>
   </div>
{% endif %}

这段代码显然多次运行,每个作业一个,但由于我无法将参数传递给模板中的函数,因此很难对request.user和每个单独的作业进行比较。

我想答案就在于观点,但我无法想出一个“干净”的方法。

用户配置文件和作业之间的关系是一个名为AppliedFor的模型,它指向作业和用户配置文件。

当我用Google搜索时,我找不到任何好的答案,但是如果有的话,请指导我![/ p>

1 个答案:

答案 0 :(得分:1)

您可以检查该用户是否包含在该职位的申请人中。

假设job.get_applicants返回User个对象的查询集(或任何可迭代的),您可以使用in运算符:

{% if request.user in job.get_applicants %}