django - 当我想在卡片/索引页面上显示内容时,我没有从数据库中看到任何内容

Posted

技术标签:

【中文标题】django - 当我想在卡片/索引页面上显示内容时,我没有从数据库中看到任何内容【英文标题】:django - I don't see anything from database when i want to display the contents on cards/index page 【发布时间】:2019-02-16 00:02:08 【问题描述】:

。在管理部分它正在工作,但在这里不起作用。顺便说一句,对不起我的沟通不畅

urls.py

from django.urls import path
from . import views

urlpatterns = [
  path('', views.all_id_cards),
 ]

views.py

 from django.shortcuts import render
 from .models import IdCard

def all_id_cards(request):
    cards = IdCard.objects.all()
    return render(request, 'cards/cards_index.html',  'cards': cards )

models.py

from django.db import models

# Create your models here.
class IdCard(models.Model):
   emp_id = models.CharField(max_length=12)
   emp_name = models.CharField(max_length=40)
   emp_title = models.CharField(max_length=30)
   emp_telephone = models.CharField(max_length=12)
   emp_email = models.CharField(max_length=30)
   emp_generation = models.CharField(max_length=20)
   emp_status = models.CharField(max_length=20)

   def __str__(self):
      return self.emp_name

cards_index.html

    <!DOCTYPE html>
  <html>
    <head>
        <meta charset="utf-8">
        <title>Homepage</title>
    </head>
    <body>
        <h1>Identity Cards</h1>
        <div class="identitycards">
            % for cards in cards %
                <div class="identitycard">
                    <p> IdCard.emp_name </p>
                </div>
            % endfor %
        </div>
    </body>
</html>

【问题讨论】:

【参考方案1】:

这里有两个问题:

    您使用% for cards in cards % 迭代项目,因此迭代器 与集合具有相同的名称。尽管它可能起作用,但最好避免这样做,因为它可能导致不可预测的行为;和 您使用 IdCard.emp_name 呈现内容。 IdCard 没有传递给渲染,但无论如何,你需要使用card,所以 card.emp_name

如果我们修复了我们作为模板文件得到的两个问题:

<!DOCTYPE html>
  <html>
    <head>
        <meta charset="utf-8">
        <title>Homepage</title>
    </head>
    <body>
        <h1>Identity Cards</h1>
        <div class="identitycards">
            % for card in cards %
                <div class="identitycard">
                    <p> card.emp_name </p>
                </div>
            % endfor %
        </div>
    </body>
</html>

【讨论】:

是的,我写的答案基本相同。我要删除我的,你的速度更快! 感谢您的帮助。非常感谢。

以上是关于django - 当我想在卡片/索引页面上显示内容时,我没有从数据库中看到任何内容的主要内容,如果未能解决你的问题,请参考以下文章

我想在购物车中添加产品而不用 AJAX 和 Django 刷新页面

如何在新页面中显示 django 搜索结果

我如何在引导程序中为索引设置不同的列排列和不同的卡片设计?

使用 django-page-cms 显示页面内容

我想在建立之前得到一个固定宽度的小部件高度。

Django 仅提供索引页面,其他所有页面为 404