【发布时间】:2010-11-24 21:25:12
【问题描述】:
不知道如何处理此错误。如何使用 post 方法将表单中的数据添加到 SQL 中?
models.py
class Lala(models.Model):
PRIORITY_CHOICES = (
(0, '1'),
(1, '2'),
(2, '3'),
(3, '4'),
)
name = models.CharField(max_length=20)
date = models.DateField()
priority = models.CharField(max_length=1, choices=PRIORITY_CHOICES)
Views.py
def add (request):
if request.method == 'POST': # If the form has been submitted...
form = AddLala(request.POST) # A form bound to the POST data
if form.is_valid():
newform = form.save()
Form.py
class AddLala(forms.Form):
PRIORITY_CHOICES = (
(0, '1'),
(1, '2'),
(2, '3'),
(3, '4'),
)
name = forms.CharField(max_length=100)
date = forms.DateField()
priority = forms.CharField(max_length=1, widget=forms.Select(choices=PRIORITY_CHOICES))
添加.html
<form target="upload_frame" action="" method="post" enctype="multipart/form-data" >
{% csrf_token %}
{{ form.as_p }}<br>
<input type="submit" name="submit" value="Upload" id="submit">
</form>
urls.py
(r'^add/$', 'QA.QAtool.views.add'),
(r'^addLala/$', 'QA.QAtool.views.addLala'),
所以,如果我走下一条路,我可以将数据添加到数据库 - 只需添加
lala = Lala(id=None, name='teststep3', date='1943-12-12', priority='High')
lala.save()
我真的不明白哪里出了问题,我到处都看到 form.save() 作为标准方法,但不适合我。
【问题讨论】:
-
你真的是要在视图中构造一个
AddTest吗? -
没有表单操作...action='/add'
-
@mossplix:无关紧要。检查方法意味着不需要单独的 URL。
-
据我从文档中得知,Django forms.Form 没有 具有 save() 方法 - 只有 ModelForm 实例具有该方法。哪个是合乎逻辑的 - 它应该保存什么以及保存在哪里?
-
是的,这一切 - 网址和表单操作 - 我错过了,谢谢
标签: django