Почему Django ORM умножает мои результаты во столько раз, сколько у меня пользователей?

Я работаю над проектом, в котором мне нужно сделать несколько запросов, но я не знаком с Django ORM.

Мой запрос работает нормально, но он умножает результат столько раз, сколько пользователей связано с проектом, и я не могу понять, как это ограничить. В необработанном запросе я обычно делаю это с помощью внутреннего соединения, но это не работает в данном случае.

views.py

def projects(request):

    jogosult = Projekt.objects.filter(jogosult_01_id=request.user)
    jog_projekt = Projekt.objects.filter(jogosult_01=request.user).order_by('-date')

    context = {
        'jogosult': jogosult,
        'jog_projekt': jog_projekt,
    }

    return render(request, 'stressz/projects.html', context)

html

{% for j in jogosult %}
    {% if request.user == j.jogosult_01 %}
        {% for jp in jog_projekt %}
             <a href="/mpa/project_details/report/{{ jp.id }}">{{ jp.projekt }}</a>
        {% endfor %}

    {% else %}

    You have no projects

    {% endif %}
{% endfor %}

models.py

class Projekt(models.Model):

def __str__(self):
    return str(self.projekt)

    projekt = models.TextField(max_length=150)
    company_name = models.ForeignKey('Company', on_delete=models.CASCADE, default=1)
    jogosult_01 = models.ForeignKey(User, on_delete=models.CASCADE, default=1)
    date = models.DateField(auto_now_add=True, auto_now=False, blank=True)
Вернуться на верх