Запрос модели ManyToMany

У меня есть 2 модели Project и Investor Project модель имеет поле под названием project_investors с ManyToMany к Investor модели.

Модели

class Investor(models.Model):

    investor_name = models.CharField(max_length=50, blank=False, unique=True)
    investor_website = models.URLField(max_length=100, blank=True)
    investor_portfolio_website = models.URLField(max_length=100, blank=True)
    investor_description = models.TextField(blank=True)
    investor_investments = models.TextField(blank=True)
    

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

class Project(models.Model):

    project_name = models.CharField(max_length=50, blank=False, unique=True)
    project_website = models.URLField(max_length=50, blank=True)
    project_description = models.TextField(blank=True)
    project_investors = models.ManyToManyField(Investor, blank=True)

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

Затем у меня есть страница, на которой отображается информация об инвесторе, и я пытаюсь показать, какие проекты были связаны с этим инвестором.

myview.py

@login_required
def show_investor_details(request,investor_id):
    investor = Investor.objects.get(pk=investor_id)
    form = InvestorForm(request.POST or None, instance=investor)
    project = Project.objects.all()
    project_list = get_object_or_404(Project, project_investors=investor_id)
    return render(request, 'pages/investor_details.html', {"investor": investor, "form": form,"project": project,'project_list':project_list})

Я не уверен, какой правильный запрос нужно передать сюда project_list = get_object_or_404(Project, project_investors=investor_id)

так как при этом возникает ошибка: 'Project' object is not iterable

Или, может быть, у меня неправильная структура модели?

аналогичный вопрос был задан и отвечен здесь https://stackoverflow.com/a/70272979/13443114

но чтобы быть явным... используйте

@login_required
def show_investor_details(request,investor_id):
    investor = Investor.objects.get(pk=investor_id)
    form = InvestorForm(request.POST or None, instance=investor)
    project_list = investor.project_set.all()
    return render(request, 'pages/investor_details.html', {"investor": investor, "form": form,"project": project,'project_list':project_list})
Вернуться на верх