Почему 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)