【发布时间】:2019-02-27 10:53:04
【问题描述】:
views.py:
class AddTeamView(View):
template_name = 'add_team.html'
def get (self, request):
form = TeamForm()
context = {'form': form}
return render(request, 'add_team.html', context)
def post(self, request):
form = TeamForm(request.POST)
if form.is_valid():
team = Team()
team.name = form.cleaned_data('name')
team.details = form.cleaned_data('detials')
context = {'form': form, 'team.name':team.name,'team.details':team.details}
return render(request, self.template_name, context)
add_team.html:
{% extends 'base.html' %}
{% block title %}
add team
{% endblock %}
{% block content %}
<form action="/add_team/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
{% endblock %}
forms.py:
from django import forms
class TeamForm(forms.Form):
name = forms.CharField(label='name of team')
details = forms.CharField(label='details of team')
当我打开浏览器时,它出现了:
/add_team/ 'dict' 对象的 TypeError 不可调用请求方法: POST 请求 URL:http://127.0.0.1:8000/add_team/ Django 版本: 2.1.1 异常类型:TypeError 异常值:'dict'对象不可调用异常位置: C:\Users\Acer\Desktop\teammanager\teams\views.py 在帖子中,第 52 行 Python可执行文件: C:\Users\Acer\Desktop\teammanager_env\Scripts\python.exe Python 版本: 3.7.0
【问题讨论】:
-
这是
form.cleaned_data['detials']不是form.cleaned_data('detials')(可能你打错了,details而不是detials)。