У меня есть 2 модели: «Портфолио» и «Скриншоты». «Скриншоты» имеют поле «проект» - это внешний ключ к «Портфолио». И у меня есть представление «ProjectDetailView». Я добавил модель «Скриншоты» через get_context_data (). Как получить по фильтру только объекты 'Скриншоты' модели, где
context['screenshots'] = Screenshot.objects.filter(project=???) # id from Project object
Мой код ниже. Это моя модель Портфолио:
class Project(BaseModel):
slug = models.SlugField(verbose_name='URL', unique=True, blank=False)
category = models.ManyToManyField(Category, verbose_name='Category')
title = models.CharField(max_length=200, verbose_name='Title', blank=False)
publication = models.BooleanField(verbose_name='Publication', default=True)
И моя модель Скриншоты:
class Screenshot(BaseModel):
image = models.ImageField(upload_to='uploads/projects/%Y/%m/', verbose_name='Image', blank=False)
project = models.ForeignKey(Project, on_delete=models.CASCADE)
Это view.py:
class ProjectDetailView(DetailView):
model = Project
template_name = 'portfolio/project_detail.html'
context_object_name = 'project'
queryset = Project.objects.filter(publication=True)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['screenshots'] = Screenshot.objects.filter(project=???) # id from Project object
return context