【问题标题】:access one to one related relations inside django template访问 django 模板中的一对一相关关系
【发布时间】:2021-07-23 08:18:40
【问题描述】:

应用的候选人技能组合

class Seekerskillset(models.Model):
        skill_set = models.ForeignKey(Skillset, on_delete=models.CASCADE)
        seeker = models.ForeignKey(SeekerProfile, on_delete=models.CASCADE)
        skill_level = models.CharField(max_length=25)

候选人工作简介

class SeekerProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)
    current_salary = models.IntegerField()

#当用户申请工作时

class JobPostActivity(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    job_post = models.ForeignKey(JobPost, on_delete=models.CASCADE)
    apply_date = models.DateTimeField(auto_now_add=True)
    status = models.CharField(max_length=25, default='onhold')

    def __str__(self):
        return self.user.username+''+self.job_post.title

这就是我正在尝试的,我想获得正在循环使用的应用候选人的技能,但我无法获得这些技能,用户和求职者资料之间存在一对一的关系 但是我们如何在 django 模板中访问它

我的看法

{% for val in applicants %}

  <tr>
    <td>({{val.user.id}}){{val.user.username | capfirst }}</td>
    <td>{{val.apply_date}}</td>
    <td>
      <select
        class="status_select"
        name="{{val.job_post.title}}"
        id="{{val.user.id}}"
      >
        <option selected="{{val.status}}" style="font-weight: bolder">
          {{val.status}}
        </option>
        <option value="onhold">Onhold</option>
        <option value="selected">Selected</option>
        <option value="rejected">Rejected</option>
      </select>
    </td>
    <td>
      <b>{{val.job_post.job_type}}</b>
    </td>
    <td>{{val.job_post.title}}</td>
    <td>
      {% for cand_skills in val.user.seeker_profile.seeker_skill_set_set.all %}   <<-- here is my issue
      {{cand_skills.skill_level}} {%endfor %}
    </td>
  </tr>

  {% endfor %}

【问题讨论】:

  • SeekerProfile 上没有相关名称,所以我认为将是 val.user.seekerprofile. skill_set_set.all 为您提供所有相关的 Seekerskillset 实例。

标签: django django-models django-views


【解决方案1】:

你应该能够做到:

{% for cand_skills in val.user.seekerprofile.skill_set_set.all() %}   
   {{ cand_skills.skill_level }}
{% endfor %}

【讨论】:

  • 你不在 html 中使用括号,只在 python 中使用,所以这是skill_set_set.all %}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-20
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 2011-05-21
  • 1970-01-01
相关资源
最近更新 更多