【问题标题】:I can't display data in django template我无法在 django 模板中显示数据
【发布时间】:2021-04-21 02:50:19
【问题描述】:

因此,我无法在此模板中显示来自我的模型的数据。在 base.html 中效果很好,但在此模板中不起作用。 我在这个网站上看到太多帖子,我无法解决我的问题。 我用太多的方式编写渲染,但不工作,我不明白。

关于我的问题的更多信息: 还是行不通。我与蛞蝓一起工作,在他们每个人中,django 只加载那个蛞蝓的数据。但是,如果我从我的模型 django 中加载数据,则不会显示该信息

views.py

from django.http import HttpResponse
from django.shortcuts import render
from django.views.generic import ListView, DetailView, CreateView, UpdateView, DeleteView
from .models import Post, PostView, Like, Comment

class PostListView(ListView):
    model = Post

class PostDetailView(DetailView):
    model = Post

class PostCreateView(CreateView):
    model = Post

class PostUpdateView(UpdateView):
    model = Post

class PostDeleteView(DeleteView):
    model = Post

def change_view(request):
    todo = Post.objects.all

    context = {
        'todo': todo
        }

    return render(request, "index.html", context) 

models.py

from django.db import models
from django.contrib.auth.models import AbstractUser
from django.shortcuts import reverse
from ckeditor.fields import RichTextField



class User(AbstractUser):
    pass
    def __str__(self):
        return self.username


class Post (models.Model):
    title = models.CharField(max_length=100)
    content = RichTextField(blank=True, null=True)
    thumbnail = models.ImageField()
    publish_date = models.DateTimeField(auto_now_add=True)
    last_updated = models.DateTimeField(auto_now=True)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    slug = models.SlugField()

    def __str__(self):
        return self.title
        return render(request, "post_detail.html", locals())

    def get_absolute_url(self):
        return reverse("detail", kwargs={
            'slug': self.slug
        })

        


class Comment (models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    timestamp = models.DateTimeField(auto_now_add=True)
    content = models.TextField()

    def __str__(self):
        return self.user.name

class PostView(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    timestamp = models.DateTimeField(auto_now_add=True)
  
    def __str__(self):
        return self.user.username
    
class Like(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
  
    def __str__(self):
        return self.user.username

index.html(在决赛中)

<!DOCTYPE html>
<html lang="en">
  
<head>
  {% load static %}
  <meta charset="UTF-8">
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css"
    integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
    integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
    crossorigin="anonymous"></script>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx"
    crossorigin="anonymous"></script>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="{% static 'css/main.css' %}">
  




</head>

<body>

  <nav id="nav" class="navbar navbar-custom">

    <div id="contbutton" class="container-fluid">

      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarToggleExternalContent"
        aria-controls="navbarToggleExternalContent" aria-expanded="false" aria-label="Toggle navigation">
        <span><img src="{% static 'images/menuthreelinesbuttoninterfacesymbol_79952.png' %}" width="40px"></span>
      </button>
    </div>
    <div id="contlogo" class="container-fluid">
      <img id="logonav" src="{% static 'images/Logo%20png%20amarillo.png' %}" width="10%">
    </div>
  </nav>
  <div class="collapse" id="navbarToggleExternalContent">
    <div class="bg-dark p-4">
      <h5 class="text-white h4">Collapsed content</h5>
      <span class="text-muted">Toggleable via the navbar brand.</span>
    </div>
  </div>
  <div class="row">
    <div class="col-md-9" style="padding: 0; margin: 0;">
      {% block content %}

      {% endblock content %}
    </div>
    <div class="col-md-3" style="margin: 0; padding:0;">
      <div class="col-md-12 contproxriv">
          <div class="col-md-12 proxriv">
            <div class="tipopartido">
              <h5>Torneo clausura</h5>
            </div>

            <div id="escudos">
              <img src="{% static 'images/WhatsApp_Image_2020-12-20_at_04.17.10-removebg-preview.png' %}" width="50px">
              <h5>VS</h5>
              <img src="{% static 'images/WhatsApp_Image_2020-12-20_at_04.17.10-removebg-preview.png' %}" width="50px">
            </div>
            <div id="nombres">
              <h5 class="nomequipo">PEÑ</h5>
              <h5 class="fecha">25/12</h5>
              <h5 class="nomequipo">PEÑ</h5>
            </div>

            <div class="laprevia">
              <a>La previa</a>
            </div>
          </div>
        </div>
        
 

      </div>
  </div>
  {% for pos in todo %}
  <div style="background-color: red; height: 200px; width: 200px;"></div>
   <h1 style="color: white;">{{ pos.title }}</h1> 
  {% endfor %}
  </body>
  <script>
    $(function() {
    $('p').addClass('itemsubtitle');
  });
  </script>
    

【问题讨论】:

  • 请编辑并删除您输入的随机文本。还要说明您要渲染的内容、哪个视图和哪个模板。
  • 我想将模型“发布”到 index.html 模板中。

标签: python django templates model


【解决方案1】:

在你的 change_view 中你写了:

todo = Post.objects.all

改成:

todo = Post.objects.all()

【讨论】:

  • 还是不行。我与蛞蝓一起工作,在他们每个人中,django 只加载那个蛞蝓的数据。但是,如果我从我的模型 django 中加载数据,则不会显示该信息
猜你喜欢
  • 2021-02-14
  • 2017-05-31
  • 2012-03-18
  • 2012-05-15
  • 2014-11-12
  • 2020-10-04
  • 2016-12-24
  • 2021-03-16
  • 2011-07-10
相关资源
最近更新 更多