【发布时间】:2019-06-27 11:29:06
【问题描述】:
表单在 html 页面中加载,但是当我单击提交按钮时,它什么也不显示(我在视图中使用的没有 HttpResponse)。但它显示了 url(http://localhost:8000/datainsert),正如我在 urls.py 中描述的那样。请指出我的代码有什么问题。
forms.py
from django import forms
from .models import Test
class TestForm(forms.ModelForm):
class Meta:
model = Test
fields = '__all__'
views.py
def datainsert(request):
if request.method == 'POST':
form = TestForm(request.POST)
if form.is_valid():
form.save()
return HttpResponse('Saved')
return HttpResponse('Not saved')
urls.py
from django.conf.urls import url
from . import views
from .views import index, datainsert, testing
urlpatterns = [
url(r'^', views.index, name='index'),
url(r'^datainsert', views.datainsert, name='datainsert'),
]
index.html
<html>
<head>
<title>My Web</title>
</head>
<body>
<form action="{% url 'myapp:datainsert' %}" method="POST">
{% csrf_token %}
{{form}}
<button type="submit">Submit</button>
</form>
</body>
</html>
【问题讨论】:
-
你使用的是什么版本的 Django?此外,将表单方法更改为小写“post”。在你的 index.html
-
感谢 thomas 的回复,我忘记为我的空 url 添加 $。现在它的工作。
标签: django django-models django-forms