Django 3 блок контента стал невидимым в шаблонах, когда расширенная база html
Индекс. html страница, используемая для отображения группы статей, тогда есть отдельные страницы из них одиночные. html оба типа страниц простираются от базы. html. После добавления нумерации страниц отображается только часть нумерации страниц.
Единственное, о чем я мог подумать, это проблема URL или html шаблонизация?
Мне кажется, я настроил его для двух разных типов URL между http://127.0.0.1: 8000 /? Page = 1 но это должно http://127.0.0.1: 8000/1 / Я считаю, что мне нужно выяснить, как их выстроить в очередь, и вот где они застряли.
Я не получаю никаких ошибок в разделе «Проблемы с кодом».
Отсутствует основной блок содержимого как в индексе. html, так и на отдельных страницах
index. html это предполагается выдвигаться из базы. html и загружать содержимое блока карточек
{% extends "base.html" %}
{% block title %}Meteorite Collection{% endblock title %}
{% block content %}
{% for article in articles %}
<div>
<li class="card m2 p-3 card-body" style="width: 18rem;">
<img class="card-img-top" src="{{article.image.url}}" alt="{{article.title}}">
<a href="{% url 'single' article.id%}"><h2>{{article.title}}</h2></a>
<img class="card-img-top" src="{% url 'single' article.id%}" alt="{{article.title}}">
<p class="card-text">{{ article.content | truncatewords:50 }}</p>
<p>Posted in: {{article.category}}, Posted by: {{article.author}}</p>
<a href="{% url 'single' article.id%}" class="btn btn-primary">Goto {{article.title}} Details</a>
</li>
</div>
{% endblock content %}
база. html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>{% block title %}{% endblock title %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
</head>
<body>
<header>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo01" aria-controls="navbarTogglerDemo01" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarTogglerDemo01">
<a class="navbar-brand" href="{% url 'index' %}">Meteorite Collection</a>
<ul class="navbar-nav mr-auto mt-2 mt-lg-0">
<li class="nav-item active">
<a class="nav-link" href="{% url 'index' %}">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</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>
</header>
<div class="container">
<div class="row mt-3">
{% block content %}
{% endblock content %}
{% for article in articles %}
{% endfor %}
<div class="row">
<div class="pagination">
{% if posts.has_previous %}
<a href="?page=1" class="btn btn-primary">« first</a>
<a href="?page={{ posts.previous_page_number }}" class="btn btn-primary">< previous </a>
{% endif %}
<span class="current">
Page {{ page_obj.number }} of {{ posts.paginator.num_pages }}.
</span>
{% if posts.has_next %}
<a href="?page={{ posts.next_page_number }}" class="btn btn-primary"> next »></a>
<a href="?page={{ posts.paginator.num_pages }}" class="btn btn-primary"> last »</a>
{% endif %}
</div>
</body>
</html>
single. html
{% extends "base.html" %}
{% block title %} {{ single.title }} {% endblock title %}
{% block content %}
<a href="{% url 'index' %}" class="btn btn-primary">...Go Back</a>
<div class="card p-4">
<h1>{{single.title}}</h1>
<img class="card-img-top" src="{{single.image.url}}" alt="{{single.title}}">
<div class="card-body">
<h5 class="card-title">{{single.title}}</h5>
<p>Posted in: {{single.category}}, Posted by: {{single.author}}</p>
<p><b>Category:</b> {{single.category}}</p>
<p><b>Name:</b> {{single.name}}</p>
<p class="card p-4"><b>Content:</b> {{ single.content }}</p>
<p><b>Offical Name:</b> {{single.offical}}</p>
<p><b>Abbreviation:</b> {{single.abbreviation}}</p>
<p><b>Observed Fall:</b> {{single.observed_fall}}</p>
<p><b>Year Found:</b> {{single.yearfound}}</p>
<p><b>Country:</b> {{single.country}}</p>
<p><b>Mass:</b> {{single.mass}}</p>
<p><b>Classification:</b> {{single.classification}}</p>
<h2>{{single.title}} - {{single.category}} - {{single.country}}</h2>
<p><b>Descriptions:</b> {{single.descriptions}}</p>
<p><b>History:</b> {{single.history}}</p>
<p><b>Place of Purchase:</b> {{single.place_of_purchase}}</p>
<p><b>Date:</b> {{single.date}}</p>
<p><b>Shock Stage:</b> {{single.shock_stage}}</p>
<p><b>Weathering Grade:</b> {{single.weathering_grade}}</p>
</div>
{% endfor %}
{% endblock content %}
views, py
from django.core.paginator import Paginator
from django.shortcuts import render
from .models import Article, Category, Author
def index(request):
articles = Article.objects.all()
paginator = Paginator(articles,3)
page = request.GET.get('page')
posts = paginator.get_page(page)
return render(request, 'index.html', {'posts': posts})
def single(request, id):
single = Article.objects.get(id=id)
nextpost = Article.objects.filter(id_gt=single.id).order_by('id').first()
prevpost = Article.objects.filter(id_lt=single.id).order_by('id').last()
return render(request, 'single.html', {"single": single, "prevpost": prevpost, "nextpost": nextpost})
blogdemo> blog> urls.py
from django.urls import path
from . import views
from .views import index, single
urlpatterns = [
path('', views.index, name='index'),
path('?page=<int:id>/', views.single, name='single'),
]
blogdemo> blogdemo> urls.py
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.urls import path, include # imported include module
from blog.views import index, single
urlpatterns = [
path('', include('blog.urls')), #added
path('admin/', admin.site.urls),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)