簡體   English   中英

Django,型號 object 未顯示在視圖中

[英]Django , models object not displayed in views

我是 django 的新手。 我有一些與模型有關的問題。 因此,我試圖通過迭代所有視圖來顯示 model 名稱和日期。 但不知何故他們沒有出現在視圖中,我試圖在谷歌中搜索,但沒有解決我的問題。 如果我問了一些荒謬的問題,我很抱歉,但這是我的代碼。 而且我已經檢查了我的模型並且它們是有效的

楷模

from django.db import models


from django.utils import timezone
from django.utils.text import slugify

class Post(models.Model):
    title = models.CharField(max_length=30)
    body = models.TextField()
    time_post = models.DateTimeField(auto_now_add=True)
    time_edit = models.DateTimeField(editable=False,blank = True)
    slug = models.SlugField(editable=False, blank=True)

    def save(self):
        self.slug = slugify(self.title)
        self.time_edit = timezone.now()
        super(Post, self).save()

    def __str__(self):
        return "{}. {}".format(self.id, self.title)

網址

from django.shortcuts import render
from  .models import Post

def blog(request):
    posts = Post.objects.all(),
    context = {
        'title':'Blog ',
        'contributor':'Chris',
        'img':'blog/img/BlogBanner.jpg',
        'Post':posts,
        'nav': [
        ['/blog/recent','Recent'],
        ['/blog/news','News'],
        ['/blog','Blog'],
        ['/about','About'],
        ['/', 'Index']
    ]
    }
    return render(request,'blog/blog.html',context)

我的博客.html

 {% extends "base.html" %}

{% load static %}
{% block app_css %} <!-- Custom CSS per app !-->
    <link rel="stylesheet" types="text/css" href = "{% static "blog/css/styleblog.css" %}"> <!-- CSS OVERIDE !-->
{% endblock app_css %}

{% block header %}
  <h1 class="display-4">Welcome to {{title}} | ChrisDjango</h1>
  <p class="lead">This was made in Django by {{contributor}}</p>
{% endblock header %}

{% block content1 %}
    {% for post in Post %}
        <h2>{{post.title}}</h2>   #THE TITLE AND TIMEPOST DIDNT SHOW UP
        <p>{{post.time_post}}</p>
    {% endfor %}
{% endblock content1 %}

底座.html

   {% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    {%include "snippets/styles.html"%} <!--Bootstrap!-->

    {% block app_css %}
    <link rel="stylesheet" types="text/css" href = "{% static "blog/css/styleblog.css" %}"> <!-- Custom CSS per app !-->
    {% endblock app_css %}

    <title>{{title}} | ChrisDjango</title>
    <img id="banner" style="border-bottom: 15px solid #343A40;" src="{% static img %}" alt="Blog Banner">

</head>
<body>
    {%include "snippets/navbar.html"%}
    <div class="jumbotron">
        <div class="container text-white text-center">
            {% block header %}

            {% endblock header %}
            <hr class="my-4">
        </div>
    </div>
    <div class="container-fluid">
        <div class="container bg-white text-dark shadow" style="margin-top:-150px" id="myBody">
            {% block content1 %}

            {% endblock content1 %}
        </div>
        <div class="container bg-secondary text-white shadow">
             {% block content2 %}
             
             {% endblock content2 %}
        </div>
 </div>
 {%include "snippets/scripts.html"%}
</body>
</html>

對不起,如果我的代碼看起來很奇怪謝謝

結尾有一個逗號

    posts = Post.objects.all(),
#              trailing comma ^

這意味着您將項目包裝在 singleton 元組中。 因此它是一個具有一個元素的元組,即 object 的集合。

您應該刪除最后的逗號:

    posts = Post.objects.all()

我還會將'Post'重命名為posts ,因為這會讓人覺得它是一個項目的集合

讓我們從 urls 中的這個編輯開始:

posts = Post.objects.all(),

應該

posts = Post.objects.all()

注意刪除的逗號。

我多次犯過這個錯誤,有時真的很難發現。 下面是當你有一個尾隨逗號時會發生什么(你得到一個可迭代的包裝器)

在此處輸入圖像描述

如果您仍然有問題 LMK。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM