所以我試圖在我的博客上鏈接一個頁面。我已經為頁面創建了模板、視圖和 URL,但它一直拋出 404 錯誤。有人可以查看我的代碼并幫助我解決問題嗎?
add_post.html:
{% extends "base.html" %}
{% block content %}
<header>
<div class="post-caption mt-4">
<div class="text-center-caption">
<h1 class="display-5 fw-bolder text-shadow">Add Your Post</h1>
<p class="lead text-shadow fw-bold">Tell us about your favourite game</p>
</div>
</div>
</header>
{%endblock%}
視圖.py:
from django.shortcuts import render, get_object_or_404, reverse
from django.views.generic import View, CreateView, ListView
from django.http import HttpResponseRedirect
from .models import Post
from .forms import CommentForm
class AddPost(CreateView):
model = Post
template_name = 'add_post.html'
fields = '__all__'
網址.py:
from .views import AddPost, PostList, PostDetail, PostLike
from django.urls import path
urlpatterns = [
path('', PostList.as_view(), name='home'),
path('<slug:slug>/', PostDetail.as_view(), name='post_detail'),
path('like/<slug:slug>/', PostLike.as_view(), name='post_like'),
path('add_post/', AddPost.as_view(), name='create_post'),
]
uj5u.com熱心網友回復:
URL 模式的順序是敏感的。您有一個用path('<slug:slug>/', PostDetail.as_view(), name='post_detail'),. 因此add_post,可能是導致沖突的帖子的有效 slug。
只需將 URL 模式的順序更改為以下內容:
from .views import AddPost, PostList, PostDetail, PostLike
from django.urls import path
urlpatterns = [
path('', PostList.as_view(), name='home'),
path('like/<slug:slug>/', PostLike.as_view(), name='post_like'),
path('add_post/', AddPost.as_view(), name='create_post'),
path('<slug:slug>/', PostDetail.as_view(), name='post_detail'),
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/497995.html
標籤:django
