get_object_or_404 не показывает значение, которое он получает из БД - PullRequest
0 голосов
/ 02 ноября 2019

Я пытаюсь создать блог в django.

Когда я нажимаю, чтобы увидеть / прочитать подробности статьи и связанных с ней комментариев, я вижу только комментарии, детали статьи не отображаются, но страница не дает сбоя.

  • Я попытался просто вызвать модель «LifePost», и тогда она показывает данные в шаблоне, но не связанные комментарии (только поля для него).

  • Я попытался вызвать метод, использующий get_object_or_404 для вызова модели LifePost, и затем он показывает все комментарии к связанной статье, но не данные статьи (толькополя для него)

models.py

class Comment(models.Model):
    post = models.ForeignKey(LifePost, on_delete=models.CASCADE, related_name='comments')
    name = models.CharField(max_length=100)
    email = models.EmailField()
    body = models.TextField()
    created_on = models.DateTimeField(auto_now_add=True)
    active = models.BooleanField(default=False)
    class Meta:
        ordering = ['created_on']

    def __str__(self):
        return 'Comment {} by {}'.format(self.body, self.name)

views.py

def life_detail(request, slug):
       template_name = 'life_detail.html'
       post = get_object_or_404(LifePost, slug=slug)
       comments = post.comments.filter(active=True)
       new_comment = None

       if request.method == 'POST':
           comment_form = CommentForm(data=request.POST)
           if comment_form.is_valid():
               new_comment = comment_form.save(commit=False)
               new_comment.post = post
               new_comment.save()
       else:
           comment_form = CommentForm()

       return render(request, template_name, {'post': post,
                                              'comments': comments,
                                              'new_comment': new_comment,
                                              'comment_form': comment_form})

urls.py

   path('life/<slug:slug>/', views.life_detail, name='life_detail'),

(NOT IN USE, but works and show the article correctly)
   #path('life/<slug:slug>/', views.LifeDetail.as_view(), name='life_detail'),

Я не получаю никакого сообщения об ошибке, и оно не дает сбоя, оно показывает правильные комментарии, относящиеся к конкретной статье. Это просто не показывает содержание статьи, если я не вызываю модель напрямую (а затем я не получаю комментарии).

Кто-нибудь может сказать мне, что я делаю неправильно?

...