@Lepilov

Как фильтровать queryset в шаблоне?

Есть модели

techgroup
class Techgroup(models.Model):
    """ Group of technology """

    name = models.CharField('group_name', max_length=32, unique=True)


technology
class Technology(models.Model):
    """Technologies."""
    tech_set = models.ForeignKey(Skillset, on_delete=models.CASCADE, related_name="skillset")
    name = models.CharField('technology name', max_length=32, unique=True)
    group = models.ForeignKey(Techgroup, on_delete=models.CASCADE, related_name="group")


employee
class Employee(models.Model):
    """Employee information."""
    user = models.OneToOneField(
        settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='employee')
    position = models.ManyToManyField(
        Position, related_name='position', blank=True)
    birth_date = models.DateField("date of birth", blank=True, null=True)
    summary = models.TextField("summary", blank=True, default='')
    skills = models.ManyToManyField(
        Technology, through="Skill", verbose_name="skills", blank=True)


Я передаю их в контекст

class AccountView(AuthorizedMixin, TemplateView):

    template_name = "profile.html"

    def get_context_data(self, **kwargs):
        context = super(AccountView, self).get_context_data(**kwargs)
        context['employee'] = Employee.objects.get(pk=self.kwargs['pk'])
        context['skillset'] = Skillset.objects.all()
        context['techgroup'] = Techgroup.objects.all()
        return context


Не могу сообразить как мне отфильтровать технологии по группам и вывести их в шаблоне
Т.е. есть у меня экземпляры techgroup: language, framework и technology: python, django, java, flask

Как сформировать вывод в шаблоне в порядке принадлежности к группе

- language: python, java
- framework: django, flask

Что то вроде

template.html

{% for group in techgroup.all %}
                  {{ group.name }}
            {% for skill in employee.employee_skills.all %}
                {% if skill.technology.group.name =   ????????  %}
                       {{ {{skill.technology.name}} }}
                 {% endif %}
            {% endfor %}

  {% endfor %}
  • Вопрос задан
  • 541 просмотр
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Шаблоны не предназначены для логики, делайте фильтрацию в представлениях.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы