获取模型对象时无法通过__实例访问Manager

时间:2019-01-26 18:01:27

标签: python django

我只是过渡到python。我只是无法从模型中的数据填充我的html列表。

这是我的模型,用于显示详细信息,但我认为这里没有错

from django.db import models

class Student(models.Model):
    student_id =  models.CharField(max_length=10, primary_key = True)
    first_name  = models.CharField(max_length = 30)
    middle_name = models.CharField(max_length = 30)
    last_name = models.CharField(max_length = 30)
    course = models.CharField(max_length = 50)
    year = models.IntegerField(default=1)
    section = models.CharField(max_length=1)

这是我不确定弄乱地方的视图和html文件

视图:

from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from .models import Student

@login_required
def home(request):
    student = Student
    return render(request, 'studentapp/studenthome.html', {
        'student':student,
    })

studenthome.hmtl

{% extends 'base.html' %}
{% block content %}
<h2>Student Home</h2>

<ul>
    {% for students in student.objects.all %}
    <li>{{students.first_name }} {{students.middle_name}} {{ students.last_name }}</li>
    {%  endfor %}
</ul>
{% endblock %}  

我认为错误与html文件中的for语句有关,但我真的不知道

错误:无法通过学生实例访问管理器

1 个答案:

答案 0 :(得分:1)

您需要从模型查询以获取数据。

您需要在views.py中进行更改 将student = Student更改为student = Student.objects.all()

并在模板中 您这个,而不是您现有的一个:

{% for students in student %}
    <li>{{students.first_name }} {{students.middle_name}} {{ students.last_name }}</li>
{%  endfor %}