django - 当我想在卡片/索引页面上显示内容时,我没有从数据库中看到任何内容。在管理部分它正在工作,但在这里不工作。顺便说一句,抱歉我沟通不畅
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 })
模型.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>
最佳答案
这里有两个问题:
- 您使用
{% for cards in cards %}
迭代元素,因此迭代器与集契约(Contract)名。虽然它可能有效,但最好避免这种情况,因为它会导致不可预知的行为;和 - 您使用
{{ 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 <b>card</b> in cards %}
<div class="identitycard">
<p>{{ <b>card</b>.emp_name }}</p>
</div>
{% endfor %}
</div>
</body>
</html>
关于python - django - 当我想在卡片/索引页面上显示内容时,我从数据库中看不到任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52276651/