Python Django-URL相互附加
我正在django制作一个web应用程序,目前我正面临这个问题。我有一个仪表板页面和一个上传页面。仪表板页面中有一个按钮链接到上传页面。但每当我点击按钮,上传页面url就会附加到仪表板页面。 代码如下: views.pyPython Django-URL相互附加,python,django,Python,Django,我正在django制作一个web应用程序,目前我正面临这个问题。我有一个仪表板页面和一个上传页面。仪表板页面中有一个按钮链接到上传页面。但每当我点击按钮,上传页面url就会附加到仪表板页面。 代码如下: views.py from django.shortcuts import render, get_object_or_404 from django.http import HttpResponse, HttpResponseRedirect from .models import Regis
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse, HttpResponseRedirect
from .models import Registration
from .forms import UploadForm
from django.urls import reverse
# Create your views here.
def homepage(request):
return render(request, 'index.html', {})
def dashboard(request):
posts = Registration.objects.all()
return render(request, "dashboard.html", {'posts': posts})
def upload(request):
form = UploadForm()
return render(request, "upload.html", {'form': form})
def uploadimage(request):
if request.method == 'POST':
form=UploadForm(request.FILES['image'], request.POST)
if form.is_valid():
pic = request.FILES['image']
desc = request.POST
post = Registration(pic='pic', desc='desc')
post.save()
url.py
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from . import views
urlpatterns = [
path('', views.homepage, name='homepage'),
path('dashboard/', views.dashboard, name='dashboard'),
path('upload/', views.upload, name='upload'),
path('create/', views.uploadimage, name='uploadimage'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
dashboard.html
<div class="profile">
<div class="left-s col s12 m3 l3">
<div class="profile-overview">
<img src="{%static 'images/group.jpg' %}" alt="profile-pic" class="circle responsive-img">
<p>Daljit Singh</p>
<p>Lorem ipsum dolor sit amet.</p>
</div>
<hr>
<div class="container">
<ul>
<li><a href="#">About</a></li>
<li><a href="#">Friends</a></li>
<li><a href="#">Photos</a></li>
<li><a href="#">Likes</a></li>
</ul>
</div>
<hr>
<button><a href="upload/">Upload post</a></button>
</div>
达尔吉特·辛格
Lorem ipsum dolor sit amet
错误:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/dashboard/upload/
Using the URLconf defined in main.urls, Django tried these URL patterns, in this order:
[name='homepage']
dashboard/ [name='dashboard']
upload/ [name='upload']
create/ [name='uploadimage']
^media\/(?P<path>.*)$
The current path, dashboard/upload/, didn't match any of these.
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
未找到页面(404)
请求方法:获取
请求URL:http://127.0.0.1:8000/dashboard/upload/
Django使用main.URL中定义的URLconf,按以下顺序尝试了这些URL模式:
[name='homepage']
仪表板/[name='dashboard']
上传/[name='upload']
创建/[name='uploadimage']
^媒体\/(第页*)$
当前路径dashboard/upload/与这些路径中的任何一个都不匹配。
您看到此错误是因为Django设置文件中的DEBUG=True。将其更改为False,Django将显示一个标准的404页面。
非常感谢您的帮助。应该是-
如果在将附加到基本URL的路径之前输入“/”(/upload/
),并且如果“/”(upload/
)不存在,则它将附加到现有路径
或评论中建议的不同方式-
<a href="{% url 'upload' %}">Upload post</a>
或者更好。。。实际上使用路由器机器,因为它是一个命名路由。。。例如: