Если я прав, ваша цель - получить все сообщения, относящиеся к объекту проекта, полученному из текущего запроса. Я предполагаю, что ваше приложение urls.py
включает что-то вроде:
urlpatterns = [
# ...
path('projects/<int:pk>/', views.ProjectView.as_view())
]
Затем DetailView
выполняет всю тяжелую работу, и вам просто нужно сделать следующее в вашем views.py
class ProjectView(DetailView):
model = MyProjects
def get_context_data(self, **kwargs):
current_project = self.get_object() # Here's where the magic happens !
completed = Post.objects.filter(status='Completed', project=current_project)
inProgress = Post.objects.filter(status='InProgress', project=current_project)
posts = Post.objects.filter(project= CurrentProject)
features = Post.objects.filter(ticket_type='Features', project=current_project)
context = super().get_context_data(**kwargs)
context['posts'] = posts
context['Features'] = features
context['completed'] = completed
context['inProgress'] = inProgress
context['projects'] = projects
return context
А благодаря другим django magi c вы могли бы сделать даже лучше
class ProjectView(DetailView):
model = MyProjects
def get_context_data(self, **kwargs):
current_project = self.get_object() # Here's where the magic happens !
posts = current_project.post_set.all()
completed = posts.filter(status='Completed')
inProgress = posts.filter(status='InProgress')
features = posts.filter(ticket_type='Features')
context = super().get_context_data(**kwargs)
context['posts'] = posts
context['Features'] = features
context['completed'] = completed
context['inProgress'] = inProgress
context['projects'] = projects
return context