objects.all() возвращает не все элементы из базы данных

#django

#django

Вопрос:

Я следую онлайн-курсу о Django и сталкиваюсь со странной проблемой: когда я ссылаюсь на свою запись в БД и когда я ожидаю получить все записи, я получаю только поле, которое я назначил для возврата в виде строки при определении класса.

Мои файлы следующие:

models.py

 from django.db import models

class About_me(models.Model):
    name = models.CharField(max_length=100)
    position = models.CharField(max_length=100)
    about = models.TextField(max_length=5000)
    location = models.CharField(max_length=100)
    email = models.CharField(max_length=100)
    linked_in = models.CharField(max_length=100)
    github = models.CharField(max_length=100)

    def __str__(self):
        return self.name
  

views.py

 from django.shortcuts import render
from .models import About_me

# Create your views here.

def cv(requests):
    cv = About_me.objects.all()
    return render(requests, 'cv/cv.html', {'cv': cv})
  

cv.html шаблон

 <!DOCTYPE html>
    <head>
        <meta charset="utf-8">
        <title>About me</title>
    </head>

    <body>
        <h1>CV</h1>
        {% for item in cv %}
            <p>{{item}}</p>
        {% endfor %}
    </body>
</html>
  

Я ожидаю получить список со всеми полями: имя, должность, о компании и т.д… но я получаю только имя, и, честно говоря, я не понимаю, почему.

Поскольку я нахожусь в учебном проекте, я бы лучше хотел знать, почему это происходит, а не просто исправлять это.

Заранее всем вам спасибо

Комментарии:

1. docs.djangoproject.com/en/3.1/intro/tutorial02

Ответ №1:

 <head>
    <meta charset="utf-8">
    <title>About me</title>
</head>

<body>
    <h1>CV</h1>
    {% for item in cv %}
        <p>item.name}</p>
        <p>item.position}</p>
        ....
    {% endfor %}
</body>