根据模板 django 中的 request.user 检查多个对象

Check multiple objects up against request.user in template django

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

在我看来我有:

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 和每个人之间进行比较工作。

我想答案就在视图中,但我想不出一个 "clean" 的方法。

用户个人资料和工作之间的关系是一个名为 AppliedFor 的模型,它指向工作和用户个人资料。

我用谷歌搜索时找不到任何好的答案,但是如果有,请将我引导至该主题!

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

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

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