【问题标题】:Request is not getting into views, but its shows the corret url请求没有进入视图,但它显示了正确的 url
【发布时间】: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


【解决方案1】:

您没有终止空 URL。

url(r'^$', views.index, name='index')

目前它匹配所有可能的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多