【发布时间】:2025-12-17 15:15:01
【问题描述】:
我一直在从事一个有多种用户类型的 Django 项目。因此,我创建了多个注册页面,为每种类型的用户创建一个。我创建了一个页面供用户选择他们是想注册为导师还是学生,以便他们以后可以得到正确的表格。 但是,我的网址无法正常工作,“注册”和“注册学生”网址都将我带到我为注册创建的视图。我做错了什么?
我的注册/urls.py:
urlpatterns = [
path('', views.register, name='register'),
path('', views.student_register, name='student_register'),
]
我的注册/模板/注册/注册.html
{% block content %}
<h2>Sign up</h2>
<p class="lead">Select below the type of account you want to create</p>
<a href="{% url 'student_register' %}" class="btn btn-student btn-lg"
role="button">I'm a student</a>
{% endblock %}
我的注册/views.py
def register(request):
return render(request, "register/register.html")
def student_register(request):
if request.method == "POST":
student_form = StudentRegisterForm(request.POST)
if student_form.is_valid():
user = student_form.save(commit=False)
user.is_student = True
user.save()
else:
student_form = StudentRegisterForm()
return render(request, "register/student_register.html", {"student_form": student_form})
还有我的应用程序的 url: 导师应用/导师应用/网址:
urlpatterns = [
path('', include("django.contrib.auth.urls")), # gives access to django log-in/out pages
path('mainpage/', include('mainpage.urls')),
path('register/', include('register.urls')),
path('student_register/', include('register.urls')),
]
localhost:8000/register 显示“register.html”页面,当我点击“我是学生”时,url 更改为 localhost:8000/register_student,但它仍保留在同一个 html 页面 - 'register.html' ,并且它不会呈现包含学生注册表单的正确视图。有什么想法吗?
【问题讨论】:
-
您应该在 register/urls.py 上为每个 url 提供不同的路径。 @natpas
-
@EliakinCosta 有帮助。谢谢!!
-
不客气@natpas
标签: python django url django-views