django - 未找到“注册”的反向。“注册”不是有效的视图函数或模式名称
问题描述
我正在尝试制作一个使用 django 内置用户模型的简单应用程序。我已经创建了一个注册页面,但是当我运行服务器时,我在索引页面上收到了这个错误。这是我正在使用的代码:
注册.html
<!DOCTYPE html>
{% extends "basic/base.html" %}
{% block title_block %}
<title>Registration</title>
{% endblock title_block %}
{% block body_block %}
<div class="jumbotron">
{% if registered %}
<h1>Thank you for registering</h1>
{% else %}
<h1>Register here!</h1>
<h3>Fill out the form: </h3>
<form enctype="multipart/form-data" method="post">
{% csrf_token %}
{{userForm.as_p}}
{{profileForm.as_p}}
<input type="submit" value="Register" name="">
</form>
{% endif %}
</div>
{% endblock body_block %}
“注册”方法的 Views.py
def register(request):
registered = False
if(request.method == 'POST'):
userForm = forms.UserForm(data=request.POST)
profileForm = forms.UserProfileInfoForm(data=request.POST)
if((userForm.is_valid()) and (profileForm.id_valid())):
user = userForm.save()
user.set_password(user.password)
user.save()
profile = profileForm.save(commit=False)
profile.user = user
if('profileImage' in request.FILES):
profile.profileImage = request.FILES['profileImage']
profile.save()
registered = True
else:
print(userForm.errors, profileForm.errors)
else:
userForm = forms.UserForm()
profileForm = forms.UserProfileInfoForm()
return render(request, 'basic/registration.html', {'userForm':userForm, 'profileForm':profileForm, 'registered':registered})
这是项目的 urls.py
from django.contrib import admin
from django.urls import path, include
from basic import views
urlpatterns = [
path('', views.index, name='index'),
path('admin/', admin.site.urls),
path('basic/', include('basic.urls', namespace='basic'))
]
这是基本应用程序的 urls.py
from django.urls import path
from . import views
app_name = 'basic'
urlpatterns = [
path('register/', views.register)
]
以及 base.html 中页面的链接
<a class="nav-link" href="{% url 'basic:register' %}">Register</a>
什么会导致这里的错误?
解决方案
您必须name
在注册路由中包含一个参数。
path('register/', views.register, name='register')
https://docs.djangoproject.com/en/2.1/topics/http/urls/#reverse-resolution-of-urls
推荐阅读
- google-app-engine - 使用 App Engine 的本地或开发 Google Cloud Firestore 数据库
- html - 如何删除 HTML 表格中的双单元格边框
- c - XC8 编译器:程序返回到 main() 的开头
- python - Plotly - 名称“iplot”未定义
- ubuntu - H2 数据库不会在 KUbuntu 18.04 上打开浏览器页面
- python - 从部分列数据框 pandas 中减去单个值
- python - 无需从目录中提取即可恢复 TensorFlow 模型
- html - 如何以正确的方式加载 CSS?
- python - Django 搜索和查看更多
- mysql - 错误:正在为 MySQL 服务器运行停止作业