我无法将表单附加到列表中

问题描述 投票:0回答:2

为什么此代码不将 task 附加到 tasks 我一直在学习 CS50 课程,在应用此代码后,我没有看到预期的结果 我尝试了所有方法,但表单仍然不会附加到任务

列表中

from django.shortcuts import render
from django import forms
from django.http import HttpResponseRedirect
from django.urls import reverse

class NewTaskForm(forms.Form):
    task = forms.CharField(label="Task Text")
    
tasks = ['finish', 'study', 'reset']


# Create your views here.
def index(request):
    
    return render(request, "task/index.html",{
        "tasks":tasks
    })
    
def add(request):
    if request.method =="post":
        form = NewTaskForm(request.post)
        if form.is_valid():
            task = form.cleaned_data["task"]
            tasks.append(task)
            return HttpResponseRedirect(reverse("task:index"))
        else:
            return render(request, "task/add.html", {
                "form":form
            })
    return render(request, "task/add.html",{
        "form":NewTaskForm()
    })
python-3.x django-views append
2个回答
0
投票

有一些问题,方法总是大写,数据存储在

request.POST

from django.shortcuts import redirect


def add(request):
    if request.method == 'POST':
        form = NewTaskForm(request.POST, request.FILES)
        if form.is_valid():
            task = form.cleaned_data["task"]
            tasks.append(task)
            return redirect('task:index')
    else:
        form = NewTaskForm()
    return render(request, 'task/add.html', {'form': form})

话虽这么说,将数据存储在(全局)变量中是一个非常糟糕的主意。它引入了全局状态,这是一种严重的反模式。


0
投票

我正在做同样的课程,也遇到同样的问题。我花了时间耐心地寻找哪里出错了,但我已经按照导师在教程中所做的方式完成了所有事情

© www.soinside.com 2019 - 2024. All rights reserved.