Представление деталей не отображает содержимое моделей
Я новичок в 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 theUser
model [Django-doc] directly. For more information you can see the referencing theUser
model section of the documentation.
Примечание: обычно имена полей в модели Django записываются в snake_case, а не PascalCase, поэтому должно быть:
author
вместо.Author