我正在尝试使用以下代码处理django/python中的表单.
home.html的:
<form action="{% url 'home:submit' %}"method='post'>
Run Code Online (Sandbox Code Playgroud)
views.py:
def submit(request):
a = request.POST(['initial'])
return render(request, 'home/home.html', {
'error_message': "returned"
})
Run Code Online (Sandbox Code Playgroud)
urls.py:
url(r'^submit/$', views.submit, name='submit'),
Run Code Online (Sandbox Code Playgroud)
当我尝试在浏览器中运行它时,我收到错误:
在/ home/u'home'的NoReverseMatch不是一个注册的命名空间,我也知道表单中有错误?
mis*_*sak 21
您只需在模板中更改操作网址即可:
<form action="{% url 'submit' %} "method='post'>
Run Code Online (Sandbox Code Playgroud)
关于url命名空间的注释......
为了能够使用home命名空间调用URL,您应该在主urls.py文件行中具有以下内容:
url(r'^', include('home.urls', namespace='home')),
Run Code Online (Sandbox Code Playgroud)
vik*_*ads 11
在您的主项目中,首先打开url.py。然后检查,首先应该声明app_name。如果不是,则声明它。
例如,我的应用名称是在url.py中声明的用户信息
app_name = "userinfo"
urlpatterns = [
url(r'home/', views.home, name='home'),
url(r'register/', views.registration, name='register')
]
Run Code Online (Sandbox Code Playgroud)
小智 10
我也面临同样的问题。现在通过添加修复它
app_name = "<name of your app>"
Run Code Online (Sandbox Code Playgroud)
在 app/urls.py 中
小智 8
对于命名空间错误,请确保您已在主 urls.py 文件中链接了应用程序的 url
path('app_name/',include('app_name.urls'))
Run Code Online (Sandbox Code Playgroud)
同样在应用程序的 urls.py 中,确保将应用程序的名称提及为
app_name='app_name'
Run Code Online (Sandbox Code Playgroud)
另请确保您已在 settings.py 中已安装的应用程序中注册了该应用程序的名称
Django的3.0,如果你正在处理的应用程序中的网址,并使用include与path在您project/urls.py:
urlpatterns = [
path(os.getenv('ADMIN_PATH'), admin.site.urls),
path('', include('my_simple_blog.urls', namespace='my_simple_blog')),
path('account/', include('account.urls', namespace='account')),
]
Run Code Online (Sandbox Code Playgroud)
您需要namespace在include.
然后在你的app/urls.py:
app_name = 'account'
urlpatterns = [
path('register/', registration_view, name='register'),
path('logout/', logout_view, name='logout'),
path('login/', login_view, name='login'),
]
Run Code Online (Sandbox Code Playgroud)
将app_name必须符合namespace您在指定project/urls.py。
每当您提到这些网址时,您都需要这样做:
{% url 'namespace:name' %}
Run Code Online (Sandbox Code Playgroud)
如果您使用它redirect:
return redirect('namespace:name')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
45321 次 |
| 最近记录: |