Нет такой колонки: student_student.course_id
Я создаю простую систему, используя Django Sqlite, но я сталкиваюсь с этой ошибкой всякий раз, когда я пытаюсь открыть таблицу в качестве администратора в django/admin, нажав на Studends table. Ошибка выглядит следующим образом:
OperationalError at /admin/student/student/
нет такой колонки: student_student.course_id
Я обыскал все, но не смог найти точного решения моей проблемы.
Ниже приведен мой код.
views.py
from django.shortcuts import render
from .models import Student
# Create your views here.
def index(request):
return render(request, "student/index.html",{
"student": Student.objects.all()
})
index.html
{% extends "student/layou.html" %}
{% block body %}
<h2>Student information</h2>
<ul>
{% for student in Student %}
<li> {{ student.id }} Student Full Name: {{ student.f_name }}{{ student.l_name }} in {{ student.grade }} with {{ student.gpa }} in {{ student.course_id }}</li>
{% empty %}
No information entered
{% endfor %}
</ul>
{% endblock %}
models.py
from django.db import models
# Create your models here.
class Course(models.Model):
code = models.CharField(max_length=10)
course_name = models.CharField(max_length=64)
def __str__(self):
return f"Course name: {self.course_name} with course code ({self.code})"
class Student(models.Model):
f_name = models.CharField(max_length=64)
l_name = models.CharField(max_length=64)
course = models.ForeignKey(Course, on_delete=models.CASCADE, related_name= "Classes" )
grade = models.CharField(max_length=10)
gpa = models.DecimalField(max_digits=4.0, max_length=4, decimal_places=2)
def __str__(self):
return f"{self.id} Full Name: {self.f_name} {self.l_name} in {self.grade} with a gpa {self.gpa} in course {self.course_id}"
Вы не можете ссылаться на объект Course через объект Student с помощью этого:
{{ student.course_id }}
Вы можете получить объект или его id следующим образом:
{{ student.course }} # returns related Course object
{{ student.course.id }} # returns related Course object's id