我在Django3中做了一个基本的todo应用程序.如何解决没有这样的列:todo_todo.title错误吗?我不能解决这个问题.这里是我的todo模型和视图。
这是我的todomodels.py。
from django.db import models
from django.utils import timezone
class Todo(models.Model):
title=models.CharField(max_length=200)
details=models.TextField()
date=models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
这是我的views.py
from django.shortcuts import render, redirect
from django.contrib import messages
from .forms import TodoForm
from .models import Todo
###############################################
def index(request):
item_list = Todo.objects.order_by("-date")
if request.method == "POST":
form = TodoForm(request.POST)
if form.is_valid():
form.save()
return redirect('todo')
form = TodoForm()
page = {
"forms" : form,
"list" : item_list,
"title" : "TODO LIST",
}
return render(request, 'todo/index.html', page)
### function to remove item, it recive todo item id from url ##
def remove(request, item_id):
item = Todo.objects.get(id=item_id)
item.delete()
messages.info(request, "item removed !!!")
return redirect('todo')
首先,确保你运行
python manage.py makemigrations
# and
python manage.py migrate
这个错误看起来像是一个数据库错误。
另外,更改
item_list = Todo.objects.order_by("-date")
至
item_list = Todo.objects.all().order_by("-date")
一个错误可能来自于你的模板视图 todo\index.html
您将尝试访问 todo.title
但它没有被正确地从视图中传递。.all()
函数从数据库中返回Todo模型所需对象的查询集。