![](/img/trans.png)
[英]__init__() got an unexpected keyword argument 'save' - django python
[英]django __init__() got an unexpected keyword argument 'content'
我是django的新手,正在制作小型SNS程序
我建立如下的模型和表格,
models.py
from django.db import models
class modelSNS(models.Model) :
content = models.TextField(blank = True)
password = models.CharField(blank = True, max_length = 10)
date = models.DateField(auto_now = True)
forms.py(我创建了此文件)
from django.forms import ModelForm
from .models import modelSNS
class SNSForm(ModelForm) :
class Meta :
model = modelSNS
fields = '__all__'
和我的应用程序的views.py如下所示
views.py
from django.shortcuts import render_to_response, render
from MySNS import models
from .forms import SNSForm
from django.http.response import HttpResponse, HttpResponseRedirect
def SNS_view(request) :
content = None
date = None
if request.method == 'POST' :
form = SNSForm(request.POST)
if form.is_valid() :
form = SNSForm(content=request.POST['content'], password=request.POST['password'])
#^ error occur in this line
form.content = request.POST['content']
form.save()
print(form)
return HttpResponseRedirect('/SNS/')
else :
form = SNSForm()
return render(request, 'SNS.html', {'form': form, 'content' : content, 'date' : date})
最后,我的html代码在这里
SNS.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SNS</title>
</head>
<body>
<form method="POST">
{% csrf_token %}
<p><label for="content">Content : </label><textarea id="content" name="content"></textarea></p>
<p><label for="password">Password : </label><input type="password" id="password" name="password"/></p>
<p><input type="submit" value="Submit" /></p>
<br/>
<h2>TimeLine</h2>
</form>
</body>
</html>
我想填写文本字段“内容”和“密码”,然后单击“提交”按钮将其发布
然后保存并在我的页面上打印文章。
但是当我提交数据时,django引发TypeError。
我正在独自学习django,这让我感到非常痛苦。
请告诉我为什么会发生此错误,并给我一些建议
小小的评论将对我有很大帮助
提前致谢
在Form中没有这样的参数称为content
。
如果要将POST数据传递给Django表单,则可以将其作为第一个位置参数传递,如下所示:
form = SNSForm(request.POST)
或者将名为data
关键字参数显式传递给Form
,如下所示:
form = SNSForm(data=request.POST)
当您调用form.is_valid()
,数据已经填充在表单属性中。 无需将诸如content
和password
类的各个字段值传递给表单。
Django的forms.ModelForm
将使用request.POST
自行填充content
和password
的值。
您要做的就是:
if form.is_valid():
form.save()
return redirect('/to-other-page/')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.