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
Попробуйте решить эту проблему, написав в консоли следующее:
python manage.py makemigrationspython 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)
