“list”对象没有属性“_meta”

为什么我的代码显示此错误,因为我的整个代码是正确的?


“list”对象没有属性“_meta”


views.py


from django.shortcuts import render, redirect, get_list_or_404

from .models import Task

from .forms import TaskForm


def update_task(request, pk):

    up_task = get_list_or_404(Task, id=pk)

    if request.method == 'POST':

        up_form = TaskForm(request.POST, instance=up_task)

        if up_form.is_valid():

            up_form.save()

            return redirect('tasks')

    else:

        up_form = TaskForm(instance=up_task)


    context = {

        'update_task_form': up_form

    }

    return render(request, 'task/update_task.html', context)

urls.py


from django.urls import path

from . import views

urlpatterns = [

    path('', views.tasks, name='tasks'),

    path('task/<str:pk>/update/', views.update_task, name='update_task'),

]


收到一只叮咚
浏览 86回答 1
1回答

浮云间

使用get_object_or_404--(Django 文档)而不是get_list_or_404from django.shortcuts import get_object_or_404# and in your viewup_task = get_object_or_404(Task, id=pk)更新将您的模板更新为,<form action="{% url 'tasks' %}" method="POST">    {% csrf_token %}    {{ update_task_form }}</form><a type="submit" href="">Update</a>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python