【问题标题】:Detail view is not displaying content of models详细视图不显示模型的内容
【发布时间】:2022-08-08 08:42:28
【问题描述】:

我在 Django 中的详细视图未成功显示从列表视图中选择的内容。以下是我的代码。

模型.py:

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)

网址.py

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\"),

视图.py:

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列表视图:

    <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}}

我希望我的查询有意义。我没有收到任何错误,只是无法正常工作。

    标签: python django django-models django-templates django-class-based-views


    【解决方案1】:

    对象数据作为objectpost_model 传递,而不是Post,所以:

    <h1>Article Page</h1><br>
    
    {{ object.Author }}
    {{ object.Body }}

    笔记:模型通常没有…Model 后缀。因此,重命名可能会更好Post_ModelPost


    笔记: 通常使用settings.AUTH_USER_MODEL [Django-doc] 引用用户模型比直接使用User model [Django-doc] 更好。有关更多信息,您可以查看referencing the User model section of the documentation


    笔记:通常 Django 模型中的字段名称是写在蛇案例, 不是帕斯卡案例,所以应该是:author 而不是Author.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-21
      • 2016-10-25
      • 2020-02-02
      • 2022-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多