Есть связанные модели:
class Employee(models.Model):
"""Employee information."""
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='employee', unique=True)
position = models.CharField("current position in a company", max_length=64, blank=True)
birth_date = models.DateField("date of birth", null=True)
skills = models.ManyToManyField(
Technology, through="Skill", verbose_name="skills", blank=True)
class Technology(models.Model):
"""Technologies."""
name = models.CharField('technology name', max_length=32, unique=True)
class Skill(models.Model):
"""Information about an employee's skills."""
LEVELS = (
('basic', 'Basic'),
('intermediate', 'Intermediate'),
('advanced', 'Advanced'),
('expert', 'Expert'),
)
employee = models.ForeignKey(
Employee, on_delete=models.CASCADE, related_name="employee_skills")
technology = models.ForeignKey(Technology, on_delete=models.CASCADE)
start_date = models.DateField(
verbose_name='Works with since:')
level = models.CharField("level", max_length=64, choices=LEVELS)
У меня несколько вопросов по выводу в шаблон информации по ним
1. Пробую через модель
User вывести общую инфу по
Employeetemplate.html{% if request.user.is_authenticated %}
{{ user.get_full_name }}
{{ user.employee.position }}
{% endif %}
Первое выражение - получение имени работает, а вот со вторым проблема - не выводится ничего. related_name='employee' - добавлено. Пробую через {{ user.employee_set.position }} - тоже без результата.
И второй вопрос - вывод Skills
Делаю по той же схеме:
{% for i in user.employee.employee_skills %}
{{ i.technology }}
{% endfor %}
и ничего.
Я могу вывести эти данные и через вьюхи
class AccountView(TemplateView):
template_name = "profile.html"
def get_context_data(self, **kwargs):
context = super(AccountView, self).get_context_data(**kwargs)
context['skills'] = Skill.objects.filter(employee__user = self.request.user)
return context
И это работает, но хочу разобраться как получать доступ через User.
Помогите разобраться пожалуйста!