Доступ к атрибуту родительской модели в шаблоне Django

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

    <h1 class="mb-3">Posts for {{ post.project.title }}</h1>
    {% for post in posts %}
        <article class="media content-section">
            <img class="rounded-circle article-img" src="{{ post.author.profile.image.url }}">
            <div class="media-body">
                <div class="article-metadata">
                    <a class="mr-2">{{ post.author }}</a>
                    <small class="text-muted">{{ post.date_posted|date:"F d, Y" }}</small>
                </div>
                <h2><a class="article-title">{{ post.title }}</a></h2>
                <p class="article-content">{{ post.description }}</p>
            </div>
        </article>
    {% endfor %}
class Project(models.Model):
    title = models.CharField(max_length=100)
    description = models.TextField(default='')
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    
    

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('project-detail', kwargs = {'pk': self.pk})

    class Post(models.Model):

    def get_default_action_status():
        return Project.objects.get(title="bruh")
    project = models.ForeignKey(Project, on_delete=models.CASCADE, related_name='posts', default=get_sentinel_exam_id)
    title = models.CharField(max_length=100)
    description = models.TextField(default='')
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    LOW = '!'
    MED = '!!'
    HIGH = '!!!'
    
    YEAR_IN_SCHOOL_CHOICES = [
        (LOW, '!'),
        (MED, '!!'),
        (HIGH, '!!!'),
    ]
    severity = models.CharField(
        max_length=3,
        choices=YEAR_IN_SCHOOL_CHOICES,
        default=LOW,
    )

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('post-detail', kwargs = {'pk': self.pk})
    urlpatterns = [
    path('', ProjectListView.as_view(), name='blog-home'),
    path('user/<str:username>', UserProjectListView.as_view(), name='user-projects'),
    path('project/<str:title>', ProjectPostListView.as_view(), name='project-posts'),
    path('post/<int:pk>/', ProjectDetailView.as_view(), name='project-detail'),
    path('post/new/', ProjectCreateView.as_view(), name='project-create'),
    
    path('post/<int:pk>/update/', ProjectUpdateView.as_view(), name='project-update'),
    path('post/<int:pk>/delete/', ProjectDeleteView.as_view(), name='project-delete'),
    path('about/', views.about, name='blog-about'),
    ]
class ProjectPostListView(ListView):
    model = Post
    template_name = 'blog/project_posts.html'
    context_object_name = 'posts'
    paginate_by = 10
    
    def get_queryset(self):
        project = get_object_or_404(Project, title=self.kwargs.get('title'))
        return Post.objects.filter(project=project).order_by('-date_posted')

Прошу прощения, если часть этого кода была не нужна, я новичок в Django.

Я понял это, создав модель "ProjectPostListView" в Project, а затем изменив ее на DetailView, чтобы я мог просто использовать все объекты post, связанные с этим проектом.

Вернуться на верх