Представление деталей не отображает содержимое моделей

Я новичок в Django, поэтому, пожалуйста, потерпите меня. Мой детальный вид в Django, не успешно отображает содержимое, выбранное из списка просмотров. Ниже приведен мой код.

Модель:

from django.db import models

from django.contrib.auth.models import User

# Create your models here.
class Post_Model(models.Model):

    Title = models.CharField(max_length=50)
    Author = models.ForeignKey(User, on_delete=models.CASCADE)
    Body = models.TextField()

    def __str__(Self):
        return Self.Title + ' | ' + str(Self.Author)

урлы:

from django.urls import path
from .views import Article_details, Home_page

urlpatterns = [
    path('', Home_page.as_view(), name="Home"),
    path('Article/<int:pk>/', Article_details.as_view(), name="Article"),

Просмотров:

from django.shortcuts import render
from django.views.generic import ListView, DetailView
from . models import Post_Model

class Home_page(ListView):
    model = Post_Model
    template_name = 'June11App/Home.html'

class Article_details(DetailView):
    model = Post_Model
    template_name = 'June11App/Article.html'

HTML LIST VIEW:

    <h1>Home Page</h1>
<ul>
    {% for Post in object_list %}
<li>
    <a href="{% url 'Article' Post.pk  %}"> 
        {{Post.Title}} 
    </a>
    - {{Post.Author}}<br>
    {{Post.Body}}
</li>
<br>
    {% endfor %}
</ul>

HTML ПОДРОБНЫЙ ВИД:

<h1>Article Page</h1><br>

{{Post.Author}}
{{Post.Body}}

Надеюсь, мой запрос имеет смысл. Я не получаю никаких ошибок на своей стороне, просто он не работает так, как должен.

Данные объекта передаются как object и post_model, а не Post, поэтому:

<h1>Article Page</h1><br>

{{ object.Author }}
{{ object.Body }}

Примечание: Модели обычно не имеют суффикса …Model. Поэтому лучше переименовать Post_Model в Post.


Note: It is normally better to make use of the settings.AUTH_USER_MODEL [Django-doc] to refer to the user model, than to use the User model [Django-doc] directly. For more information you can see the referencing the User model section of the documentation.


Примечание: обычно имена полей в модели Django записываются в snake_case, а не PascalCase, поэтому должно быть: author вместо Author.

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