django - я ничего не вижу из базы данных, когда хочу отобразить содержимое на карточках / индексной странице - PullRequest
0 голосов
/ 11 сентября 2018

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

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 Ответ

0 голосов
/ 11 сентября 2018

Здесь есть две проблемы:

  1. вы перебираете элементы с помощью {% for cards in cards %}, поэтому итератор имеет то же имя, что и коллекция.Хотя может работать, этого лучше избегать, поскольку это может привести к непредсказуемому поведению;и
  2. вы отображаете содержимое с помощью {{ 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...