我有一个与django连接的mysql数据库,我知道它已连接,因为您已经向我显示了数据。但是我做了一个小表格来做测试,并且不保存数据。该代码是正确的,因为我已经将其从地方移到了def index (request):
那里,如果您向我发送数据,那是不正确的,因为它没有正确输入我执行的功能
views.py
from django.shortcuts import render, redirect
from models import Test
def index(request):
test = Test.objects.all()
context = {'test': test }
return render(request, 'test_app/index.html', context)
def create(request):
print request.POST
test = Test(name=request.POST['name'], breed= request.POST['breed'])
test.save()
return redirect('/')
urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index),
url(r'^create/$', views.create)
]
index.html
<form action"/create" method="post">
{% csrf_token %}
<label for="name">Name: <input type="text" name="name" />
</label>
<label for="breed">Breed: <input type="text" name="breed"/>
</label> <input type="submit" value="create" />
</form>
如果您发送POST
但没有任何变量,只是没有保存在控制台中,所以我没有错误。使用python 2.7和django 1.1
答案 0 :(得分:1)
我不确定我是否理解您的问题,但是在我看来,您的问题是您的表单提交了错误的网址。您的表单指向/create
,URL模式为r'^create/$'
。
要使表单提交到您的创建视图,请设置正则表达式以有选择地匹配斜杠r'^create/?$'
,或将斜杠添加到表单操作action="/create/"
。