Django Ошибка во время рендеринга шаблона нет такого столбца

Я совсем новичок в Django и базах данных. Я пытался показать список дел пользователя с помощью view.html. Ошибка говорит "нет такой колонки:testapp_todolist.user_id".

Но я не понимаю, где находится эта колонка и как она связана с красной строкой в моем view.html: {% for td in user.todolist.all %}

Не могли бы вы подробно объяснить, как мне добавить эту колонку? Спасибо. P.s. Вот мой models.py

from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class ToDoList(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="todolist", default=0)
    name = models.CharField(max_length=200)

    def __str__(self):
        return self.name

class Item(models.Model):
    todolist = models.ForeignKey(ToDoList, on_delete=models.CASCADE)
    text = models.CharField(max_length=200)
    complete = models.BooleanField()
    
    def __str__(self):
        return self.text

enter image description here

Попробуйте решить эту проблему, написав в консоли следующее:

  • python manage.py makemigrations
  • python manage.py migrate

Эти команды создадут таблицы для модели TodoList в базе данных.

user не имеет объекта todolist, todolist является внешним ключом в Item. Вы должны сделать:

list = ToDoList.objects.filter(user=YOUR_USER_HERE)

или

# if you want to get the todolist of the currently logged in user
list = ToDoList.objects.filter(user=request.user) 
Вернуться на верх