Python 表格提交不邮寄';是Django中的值
当我试图用这个简单的表单保存数据时,它并没有被发布。行动声明或url中是否有任何错误 这里request.method是GET而不是POST,即使form方法设置为POST 模型文件Python 表格提交不邮寄';是Django中的值,python,django,Python,Django,当我试图用这个简单的表单保存数据时,它并没有被发布。行动声明或url中是否有任何错误 这里request.method是GET而不是POST,即使form方法设置为POST 模型文件 from django.db import models # Create your models here. class Contact(models.Model): name = models.CharField(max_length=30, null=True, blank
from django.db import models
# Create your models here.
class Contact(models.Model):
name = models.CharField(max_length=30, null=True, blank=True)
company_id = models.CharField(max_length=30)
def __unicode__(self):
return self.name
py使用modelform
from contact.models import Contact
from django.forms import ModelForm
class AddcntForm(ModelForm):
class Meta:
model = Contact
观点
网址
模板文件如下所示
{% block content %}
<form method="post" action="/hr/addcnt/" >{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Ok" />
</form>
{% endblock %}
{%block content%}
{%csrf_令牌%}
{{form.as_p}}
{%endblock%}
您正在传递请求。当方法为POST
时,将查询信息发送到表单中。您应该通过请求。改为POST
您还将请求传递到form.save()
。ModelForm.save()
所需的唯一(可选)参数是一个布尔“commit”标志,如果为true,将阻止表单有效地保存实例(cf)。请记住,在Python中,每个对象都有一个布尔值。。。看,您是说表单不保存您的实例;) 我也对同样的问题感到困惑
最初调用表单时,它是“GET”请求,因此语句-print request.method将打印“GET”
在表单中输入值后,如果单击“提交”,您可以在控制台中看到相同的语句-print request.method将打印“POST”,这实际上是一个POST请求。抱歉,这只是一个输入错误。当我打印request.method时,它打印为GET而不是POST。GET(获取空表单)和POST(提交时)都会调用您的视图。而且您的代码(答案已编辑…)确实存在另一个问题。为什么要硬编码操作
值?您应该使用django的url创建。@ThiefMaster是的,我会的,但我无法在这里找出问题所在。这只是一个测试代码。
from django.conf.urls import *
from django.conf import settings
urlpatterns = patterns('contact.views',
url(r'^addcnt/$', 'add_cnt', name='add_cnt'),
)
{% block content %}
<form method="post" action="/hr/addcnt/" >{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Ok" />
</form>
{% endblock %}