【发布时间】:2020-08-03 09:29:08
【问题描述】:
我以register 的身份创建了新应用,当尝试在 html 中链接时,点击链接后它不会重定向页面
项目的settings.py:
INSTALLED_APPS = [
'questions.apps.QuestionsConfig',
'register.apps.RegisterConfig', # registered new app
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'crispy_forms',
]
项目的urls.py:
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('questions.urls')),
path('register/', include('register.urls')) #Linked apps urls.py
]
注册应用的views.py:
from django.shortcuts import render, redirect
from django.http import HttpResponse
from .forms import RegisterForm
# Create your views here.
def register(request):
if request.method == "POST":
form = RegisterForm(request.POST)
if form.is_valid():
form.save()
return redirect("/")
else:
form = RegisterForm()
return render(request,'register.html',{'form':form})
def test(request):
return render(request,'test.html',{'form':form})
注册应用的urls.py:
from django.urls import path
from . import views
urlpatterns = [
path('register', views.register, name='register'),
]
当我在浏览器的 url 中使用 http://127.0.0.1:8000/register/register 时,它工作正常。
但是当我在 html 中使用 href 标签来渲染 register.html 页面时,我得到了错误。
尝试后:
<a href="#link" class="btn btn-info" href="register/register">Register</a>
我什么也没得到,在浏览器 url 中显示为
http://127.0.0.1:8000/#link
使用时:
<a href="#link" class="btn btn-info" href="{% url 'register/register' %}">Register</a>
得到错误:
NoReverseMatch at /
Reverse for 'register/register' not found. 'register/register' is not a valid view function or pattern name.
【问题讨论】:
标签: django django-views django-templates django-3.0