доступ к взаимосвязанным отношениям один к одному внутри шаблона django

#django #django-models #django-views

Вопрос:

Применяемые наборы навыков кандидатов

 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 %}
 

Комментарии:

1. Там нет связанного имени SeekerProfile , поэтому я думаю, что это будет val.user.seekerprofile. skill_set_set.all для того, чтобы предоставить вам все связанные Seekerskillset экземпляры.

Ответ №1:

Вы должны просто уметь это делать:

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

Комментарии:

1. Вы не используете скобки в html, только в python, так что это skill_set_set.all %}