我遇到了一个问题,即使转到/ register时home.html页面仍然显示。对可能导致问题的原因的任何帮助或猜测都将具有很大的意义!
下面是main / urls.py文件:
from django.conf.urls import url, include
from . import views
app_name = "main"
urlpatterns = [
url("", views.homepage, name="homepage"),
url("register/", views.register, name="register"),
]
主要应用的url.py文件:
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url('tinymce/',include('tinymce.urls')),
url('', include('main.urls')),
]
main / views.py文件:
from django.shortcuts import render
from django.http import HttpResponse
from .models import ParkingSpot
from django.contrib.auth.forms import UserCreationForm
# Create your views here.
def homepage(request):
return render(request = request,
template_name = "main/home.html",
context= {"parkingspots": [i for i in ParkingSpot.objects.all() if i.parkingspace_id == 1]})
def register(request):
form = UserCreationForm
return render(request,
"main/register.html",
context={"form":form})
我的html文件如下。首先是头文件,所有其他页面都将扩展。
<head>
{% load static %}
<link = href="{% static 'tiny/css/prism'%"} rel="stylesheet">
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
</head>
<body>
<nav class="nav-extended">
<div class="nav-wrapper">
<a href="/" class="brand-logo">Steelseries Parking</a>
<a href="/" data-target="mobile-demo" class="sidenav-trigger"><i class="material-icons">menu</i></a>
<ul id="nav-mobile" class="right hide-on-med-and-down">
<li><a href="/">Main</a></li>
<li><a href="/register">Register</a></li>
<li><a href="/login">Login</a></li>
</ul>
</div>
<div class="nav-content">
<ul class="tabs tabs-transparent">
<li class="tab"><a href="/">Copenhagen</a></li>
<li class="tab"><a class="active" href="/Chicago">Chicago</a></li>
<li class="tab disabled"><a href="/Taiwan">Taiwan</a></li>
</ul>
</div>
</nav>
<ul class="sidenav" id="mobile-demo">
<li><a href="/">Main</a></li>
<li><a href="/register">Register</a></li>
<li><a href="/login">Login</a></li>
</ul>
<div class="container">
<br>
{% block content %}
{% endblock %}
</div>
</body>
<script src="{% static 'tinymce/js/prism.js'%"}>
主页:
{% extends "main/header.html" %}
{% block content %}
<body>
<div class="row">
{% for spot in parkingspots%}
<div class="row">
<div class="col s2 m4">
<div class="card-panel teal">
<span class="white-text">
Parkingspot: {{spot}} in {{spot.parkingspace}}
</span>
</div>
</div>
</div>
{% endfor %}
</div>
</body>
{% endblock %}
“注册”页面:
{% extends "main/header.html" %}
{% block content %}
<form method="POST">
{% csrf_token %}
{{ form }}
</form>
If you already have an account, <a href="/login">Login</a> instead.
{% endblock %}
答案 0 :(得分:0)
我发现,这是因为main / urls.py下urlpatterns中的“” url确实捕获了所有url,因为所有位置都匹配。当将其更改为r“ ^ $”时,它解决了问题:)