当我加载我的博客页面时,base.html被扩展并正在工作,但我的其他html文件的内容没有显示.为什么会这样



我已经尝试了我能想到的一切。我首先学习了关于Real Python的完整教程。现在,我正处于自己构建的阶段,一切似乎都是相连的。所有的URL和视图以及我的数据库似乎都井然有序,没有任何错误。

每当我访问博客url时,base.html和navbar以及所有内容都已就位,但我的其他html文件的实际内容却不见了。

base.html

<!DOCTYPE html>
{% load email_obfuscator %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Portfolio</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">  <! -- This line is to ensure proper rendering on mobile devices -->
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="{% url 'projects:all_projects' %}">Portfolio</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="{% url 'projects:all_projects' %}">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link"<a href="mailto:jordanmiracle@protonmail.com" target="_blank">Contact Me</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
More
</a>
<div class="dropdown-menu"aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="{% url 'blog:blog_index' %}">Blog</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="#">Other Stuff</a>
</div>
</li>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
<div class="container">
{% block content %}
{% endblock %}
</div>

blog.index.html

{% block page_content %}
(% load static %}
<div class="col-md-8 offset-md-2">
<h1>Blog Index</h1>
<hr>
{% for post in posts %}
<h2><a href="{% url 'blog_detail' post.pk %}">{{ post.title }}</a></h2>
<small>
{{ post.created_on.date }} |&nbsp;
Categories:&nbsp;
{% for category in post.categories.all %}
<a href="{% url 'blog_category' category.name %}">
{{ category.name }}
</a>&nbsp;
{% endfor %}
</small>
<p>{{ post.body | slice:":400" }}...</p>
{% endfor %}
</div>
{% endblock page_content %}

blogdetails.html

{% extends "base.html" %}
{% block page_content %}
<div class="col-md-8 offset-md-2">
<h1>{{ post.title }}</h1>
<small>
{{ post.created_on.date }} |&nbsp;
Categories:&nbsp;
{% for category in post.categories.all %}
<a href="{% url 'blog:blog_category' category.name %}">
{{ category.name }}
</a>&nbsp;
{% endfor %}
</small>
<p>{{ post.body | linebreaks }}</p>
<h3>Leave a comment:</h3>
<form action="/blog/{{ post.pk }}/" method="post">
{% csrf_token %}
<div class="form-group">
{{ form.author }}
</div>
<div class="form-group">
{{ form.body }}
</div>
<button type="Submit" class="btn btn-primary">Submit</button>
</form>
<h3>Comments:</h3>
{% for comment in comments %}
<p>
On {{comment.created_on.date }}&nbsp;
<b>{{ comment.author }}</b> wrote:
</p>
<p>{{ comment.body }}</p>
<hr>
{% endfor %}
</div>
{% endblock %}

blogcategories.html

{% extends "base.html" %}
{% block page_content %}
<div class="col-md-8 offset-md-2">
<h1>{{ category | title }}</h1>
<hr>
{% for post in posts %}
<h2><a href="{% url 'blog:blog_detail' post.pk%}">{{ post.title }}</a></h2>
<small>
{{ post.created_on.date }} |&nbsp;
Categories:&nbsp;
{% for category in post.categories.all %}
<a href="{% url 'blog:blog_category' category.name %}">
{{ category.name }}
</a>&nbsp;
{% endfor %}
</small>
<p>{{ post.body | slice:":400" }}...</p>
{% endfor %}
</div>
{% endblock %}

blog/urls.py

from django.urls import path
from . import views
app_name = 'blog'
urlpatterns = [
path("", views.blog_index, name="blog_index"),
path("<int:pk>/", views.blog_detail, name="blog_detail"),
path("<category>/", views.blog_category, name="blog_category"),
]

博客/视图.py

from django.shortcuts import render
from blog.models import Post, Comment
from blog.forms import CommentForm

def blog_index(request):
posts = Post.objects.all().order_by('-created_on')
context = {
"posts": posts,
}
return render(request, "blog/blog_index.html", context)

def blog_category(request, category):
posts = Post.objects.filter(
categories__name__contains=category
).order_by(
'-created_on'
)
context = {
"category": category,
"posts": posts
}
return render(request, "blog/blog_category.html", context)

def blog_detail(request, pk):
post = Post.objects.get(pk=pk)
if request.method == 'POST':
form = CommentForm(request.POST)
if form.is_valid():
comment = Comment(
author=form.cleaned_data["author"],
body=form.cleaned_data["body"],
post=post
)
comment.save()
form = CommentForm()
comments = Comment.objects.filter(post=post)
context = {
'post': post,
'comments': comments,
'form': form,
}
return render(request, 'blog/blog_detail.html', context)

此外,我的设置文件中的一块可能是相关的。

TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
os.path.join(BASE_DIR, 'projects/templates/projects'),

文件结构

有人知道为什么会这样吗?我试着发布代码,但结果一团糟。我才刚刚在这里变得活跃起来。

如果有人需要更多的信息,或者需要我提供任何代码,我会很乐意这样做。我会尽我所能截图。这让我非常沮丧,我想继续前进,把这件事忘掉。任何帮助都会很棒。

您的blog.index.html(对于粘贴在此处的版本(中没有{% extends "base.html" %}

第二件事:base.html中的块被称为content,而您将其用作{% block page_content %}

最新更新