#python #django
#python #django
Вопрос:
Я пытаюсь добавить еще один раздел на веб-страницу. первая половина работает, но я не могу заставить вторую половину отображаться. Первая половина запускает функцию с именем PageFour, у нее есть переменная для blog . Я создал другую функцию под названием pageFourBlogs, которая определяет переменную для блогов. Однако она по-прежнему не отображается, что я делаю не так? Заранее спасибо за ваши усилия.
urls.py
from django.shortcuts import render, get_object_or_404
from .models import Blog
def all_blogs(request):
blogs = Blog.objects.order_by('?')
return render(request, 'blog/all_blogs.html', {'blogs': blogs})
def Entertainment(request):
blogs = Blog.objects.filter(category='Entertainment')
return render(request, 'blog/Entertainment.html', {'blogs': blogs})
def Technology(request):
blogs = Blog.objects.filter(category='Technology')
return render(request, 'blog/Technology.html', {'blogs': blogs})
def Culture(request):
blogs = Blog.objects.filter(category='Culture')
return render(request, 'blog/Culture.html', {'blogs': blogs})
def pageOne(request, blog_id):
blog = get_object_or_404(Blog, pk=blog_id)
return render(request, 'blog/pageOne.html', {'blog': blog})
def pageTwo(request, blog_id):
blog = get_object_or_404(Blog, pk=blog_id)
return render(request, 'blog/pageTwo.html', {'blog': blog})
def pageThree(request, blog_id):
blog = get_object_or_404(Blog, pk=blog_id)
return render(request, 'blog/pageThree.html', {'blog': blog})
def pageFour(request, blog_id):
blog = get_object_or_404(Blog, pk=blog_id)
return render(request, 'blog/pageFour.html', {'blog': blog})
def pageFourBlogs(request):
blogs = Blog.objects.order_by('?')
return render(request, 'blog/pageFour.html', {'blogs': blogs})
pageFour.html
{% extends 'blog/navBarFooter.html' %}
{% block content %}
<h1 class="text-center mt-3" id="blogdetailtitle">{{ blog.title }}</h1>
<h5 class="text-center mt-3" id="blogdetailtitle">By: {{ blog.by }} | {{ blog.category }}</h5>
<hr color="black">
<div class="col-lg-12 col-md-8">
<img id="imgRight" src="{{ blog.pageFourImage.url }}" height=190 width=350>
<p id="textLeft">{{ blog.pageFour | safe }}</p>
</div>
<hr color="black">
<a href="{% url 'all_blogs' %}">
<p style="
margin-left: 40%;
box-sizing: content-box;
width: 300px;
height: 80x;
border: 1px solid black;
padding: 10px;
box-shadow: 5px 10px 18px gray;
text-align: center;
font-family: 'Russo One', sans-serif;
color: black;
font-size: 40px;">Next</p>
</a>
<div class="row">
{% for blog in blogs %}
<div class="col-lg-4 col-md-6">
<img src="{{ blog.summaryImage.url }}" height=190 width=350>
<a href="{% url 'pageOne' blog.id %}">
<h2>{{ blog.title }}</h2>
</a>
<p>By: {{ blog.by }} | {{ blog.date|date:'M d Y'|upper }}</p>
<p>{{ blog.summary }}</p>
</div>
{% endfor %}
</div>
{% endblock %}
Комментарии:
1. Ваш
pageFour
передает только объектblog
и другое представлениеblogs
, поэтому в зависимости от выбранного вами URL-адреса вы запускаете одно из двух представлений, и каждый раз данные любого блога / blogs будут отсутствовать.2. Я думаю, что понимаю, но я не уверен, как это изменить. Есть ли способ изменить функцию PageFour, чтобы она также включала блоги? Я пробовал, страница не будет отображаться, она просто показывает html.