Моя Django веб-страница не отображает модели. Как я могу это исправить? - PullRequest
0 голосов
/ 06 августа 2020

Я изучал Django, но у меня были проблемы, пожалуйста, помогите! Ошибка ни на сервере, ни на веб-странице отсутствует.

Моя домашняя страница (index. html) работает нормально, но DetailPage (post. html) отображается пустой.

blog / views .py

from .models import Article
from django.views import generic


class HomePage(generic.ListView):
    template_name = 'blog/index.html'
    queryset = Article.objects.filter().order_by('date')
    context_object_name = 'Article_list'


class DetailPage(generic.DetailView):
    template_name = 'blog/post.html'
    model = Article

blog / urls.py

from django.urls import path
from . import views

app_name = 'blog'
urlpatterns = [
    path('', views.HomePage.as_view(), name='home'),
    path('<int:pk>/', views.DetailPage.as_view(), name='detail')
]

blog / models.py

from django.db import models


class Article(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    slug = models.SlugField(max_length=200, unique=True)
    date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

    def snippet(self):
        return self.body[:200]

blog / templates / blog / index. html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="margin:10%">
{% for Article in Article_list %}
    <h1 align="center" style="padding-bottom:20px">
        <a href="{% url 'blog:detail' Article.id%}">{{Article.title}}</a>
    </h1>
    {{Article.date}}<br><br>
    {{Article.snippet}}...<br><hr>
{% endfor %}
</body>
</html>

blog / templates / blog / post. html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<h1>{{Article.body}}</h1>
{{Article.body}}<br>
{{Article.body}}
</body>
</html>

ПРИМЕЧАНИЕ: отображаются другие элементы веб-страницы, кроме Python переменных, т. Е. {{Article.body }}, {{Article.body}}, {{Article.body}}

1 Ответ

0 голосов
/ 06 августа 2020

Замените {{Article.body}} на {{object.body}}

Вы не установили article в качестве контекста в вашем DetailView, поэтому шаблон не распознает статью. Если вы хотите использовать article вместо object, вам придется установить его как контекст, но это совершенно не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...