Мой django generic DetailView не показывает никаких данных
Всем привет, я только начал разрабатывать свой блог на django, но у меня не получается отображать посты по отдельности. DetailView не работает, помогите пожалуйста!
Вот мое мнение.
from django.shortcuts import render
from django.views.generic import ListView, DetailView
from .models import Article
# Create your views here.
class Home(ListView):
model = Article
template_name = 'home.html'
class ArticleDetailView(DetailView):
model = Article
template_name = 'article_detail_view.html'
Моя модель
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Article(models.Model):
title = models.CharField(max_length=255)
author = models.ForeignKey(User, on_delete=models.CASCADE)
body = models.TextField()
def __str__(self):
return self.title + '|' + str(self.author)
class Meta:
verbose_name = 'Article'
verbose_name_plural = 'Articles'
Спасибо за обновление вопроса.
Сначала добавьте метод get_absolute_url в модель следующим образом:
class Article(models.Model):
title = models.CharField(max_length=255)
author = models.ForeignKey(User, on_delete=models.CASCADE)
body = models.TextField()
def __str__(self):
return self.title + '|' + str(self.author)
class Meta:
verbose_name = 'Article'
verbose_name_plural = 'Articles'
def get_absolute_url(self):
return reverse("article_details", kwargs={"pk": self.pk})
В вашем article_detail_view.html вы можете получить доступ к статье, используя экземпляр статьи:
<h2>Article Detail View</h2>
<h2>{{article.title}} By {{ article.author }}</h2></br>
<p>{{article.body}}</p>
в models.py
class Meta:
managed = True
verbose_name = 'Article'
verbose_name_plural = 'Articles'
в вашем article_detail_view.html вы можете получить доступ к статье по: {{object.title}} вы также можете указать, что возвращать в шаблоне и как вы хотите назвать это, переопределив get_context_data проверить this