Django帖子不显示在主页上,但在分类列表中

2024-04-20 15:15:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我和Django写了个博客。博客允许管理员创建帖子和类别。我用bootstrap来对齐相邻的柱子。 这是我博客的主页。当柱子到达屏幕的另一端时。请看下面的示例:

邮政1、邮政2、邮政3、邮政4、邮政5、邮政6、邮政7、邮政8、邮政9、邮政10、邮政11、邮政12、邮政13、邮政14、邮政16。



post 16不会显示在主页上,但是如果您转到它的类别,它将显示在类别列表上,而不会显示在主页上索引.html

索引.html

{% extends 'base.html' %}

{% block content %}
{% if categories %}
<div class="tab">
{% for category in categories %}
<button class="tablinks"><a href="{{ category.get_absolute_url }}">{{ 
category.title }}</a></button>
{% endfor %}
{% else %}
<p>There are no posts.</p>
{% endif %}

</div>
<br><br><br>
<div class="container ">
{% if posts %}
<div class="row ">
{% for post in posts %}
 <div class="poosts col-md-2">
 <p class="past"><a class="link" href="{{ post.get_absolute_url }}"><span 
class="tda"> {{post.title}}</span><br><br><span class="postbody">
{{post.body|truncatewords:13}}</a></span></p>
    </div>
    {% endfor %} 

{% else %}
    <p class="text-center">There are no posts.</p>
</div>
{% endif %}


</div>
{% endblock %}

类别页面

^{pr2}$

视图.py

from django.shortcuts import render, redirect, get_list_or_404
from django.http import  HttpResponse
from .models import Blog, Category
from django.shortcuts import render_to_response, get_object_or_404


def index(request):
     return render_to_response('account/index.html', {
        'categories': Category.objects.all(),
        'posts': Blog.objects.all()[:5]
     })

def view_post(request, slug):

    return render_to_response('account/view_post.html', {
           'post': get_object_or_404(Blog, slug=slug)
    })

def view_category(request, slug):
    category = get_object_or_404(Category, slug=slug)
    return render_to_response('account/view_category.html', {
           'category': category,
           'posts': Blog.objects.filter(category=category)[:5]
    })

模型.py

from django.db import models
from django.db.models import permalink

class Blog(models.Model):
      title = models.CharField(max_length=100, unique=True)
      slug = models.SlugField(max_length=100, unique=True)
      body = models.TextField()
      posted = models.DateTimeField(db_index=True, auto_now_add=True)
      category = models.ForeignKey('Category')

def __unicode__(self):
    return '%s' % self.title

@permalink
def get_absolute_url(self):
    return ('view_blog_post', None, { 'slug': self.slug })


def __str__(self):
    return self.title

class Category(models.Model):
      title = models.CharField(max_length=100, db_index=True)
      slug = models.SlugField(max_length=100, db_index=True)

def __unicode__(self):
    return '%s' % self.title


@permalink
def get_absolute_url(self):
    return ('view_blog_category', None, { 'slug': self.slug })

def __str__(self):
    return self.title

Tags: fromselfdivgetreturntitlemodelsdef