Python 在我的列表中看不到我的帖子。html
我创建了一个博客 这是我的models.py配置:Python 在我的列表中看不到我的帖子。html,python,django,django-models,django-templates,django-views,Python,Django,Django Models,Django Templates,Django Views,我创建了一个博客 这是我的models.py配置: from django.db import models from django.utils import timezone from django.contrib.auth.models import User from django.core.urlresolvers import reverse # Create your models here. class PublishedManager(models.Manager):
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
# Create your models here.
class PublishedManager(models.Manager):
def get_queryset(self):
return super(PublishedManager, self).get_queryset()\
.filter(status='published')
class post(models.Model):
STATUS_CHOICE=(
('draft','DRAFT'),
('published','Published'),
('admin','admin'),
)
title=models.CharField(max_length=250,null=True)
author=models.ForeignKey(User,related_name='blog_posts',null=True)
slug=models.SlugField(max_length=250,unique_for_date='publish',null=True)
body=models.TextField(default='')
publish=models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True,null=True)
updated =models.DateTimeField(auto_now=True)
status = models.CharField(max_length=10,
choices =STATUS_CHOICE,
default='draft')
objects = models.Manager()
published = PublishedManager()
class Meta:
ordering = ('-publish',)
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('blog:post_detail',args=[self.publish.year,
self.publish.strftime('%m'),
self.publish.strftime('%dz'),
self.slug])
这是my views.py:
from django.shortcuts import render
from .models import post
# Create your views here.
def post_list(request):
posts= post.published.all()
return render(request,'blog/post/list.html',{posts:posts})
def post_detail(request,year,month,day,post):
post=get_object_or_404(post,slug=post,
status = 'published',
publish__year=year,
publish__month=month,
publish__day=day)
return render(request,'blog/post/index.html',{'post':post})
这是my base.html:
{%load staticfiles%}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{% block title %}
<link rel="stylesheet" href={% static "/css/blog.css"%}>
{% endblock %}
</title>
</head>
<body>
<div id="content">
{% block content %}
{% endblock %}
</div>
<div id="sidebar">
<h2>my blog</h2>
<h3>this blog</h3>
</div>
</body>
</html>
我已经使用admin user添加了一些post对象,但是当我尝试访问页面时,根据教程,预期的输出如下所示:
但我的结果是:
首先,上下文词典中的键应该是字符串
'posts'
,而不是@ABDUL在评论中指出的变量posts
return render(request,'blog/post/list.html',{'posts':posts})
然后您需要修复NoReverseMatch
错误。在获取绝对url
方法中,您有%dz
。它应该是“%d”
。卸下z
def get_absolute_url(self):
return reverse('blog:post_detail',args=[self.publish.year,
self.publish.strftime('%m'),
self.publish.strftime('%d'),
self.slug])
首先,上下文词典中的键应该是字符串
'posts'
,而不是@ABDUL在评论中指出的变量posts
return render(request,'blog/post/list.html',{'posts':posts})
然后您需要修复NoReverseMatch
错误。在获取绝对url
方法中,您有%dz
。它应该是“%d”
。卸下z
def get_absolute_url(self):
return reverse('blog:post_detail',args=[self.publish.year,
self.publish.strftime('%m'),
self.publish.strftime('%d'),
self.slug])
嗨,我不知道你的问题,但请检查out@mohammedqudah谢谢分享that@mounikesmintu你能试试这个
返回render(请求,'blog/post/list.html',{'posts':posts})
@ABDULNIYASPM这是我得到的错误:找不到带参数的'post_detail'(2017,'11','14z','12')的/blog/Reverse。尝试了1种模式:[“blog/(?P\\d{4})/(?P\\d{2})/(?P\\d{2})/(?P[-\\W]+)/$”]作为旁白,最好将您的模型命名为Post
(大写P
)。目前它与您的post\u detail
方法中的post
实例冲突。您好,我不知道您的问题,但请检查out@mohammedqudah谢谢分享that@mounikesmintu你能试试这个返回render(请求,'blog/post/list.html',{'posts':posts})
@ABDULNIYASPM这是我得到的错误:找不到带参数的“post_detail”(2017,'11','14z','12')的/blog/Reverse处的NoReverseMatch。尝试了1种模式:[“blog/(?P\\d{4})/(?P\\d{2})/(?P\\d{2})/(?P[-\\W]+)/$”]作为旁白,最好将您的模型命名为Post
(大写P
)。此时,它与post\u detail
方法中的post
实例冲突。
def get_absolute_url(self):
return reverse('blog:post_detail',args=[self.publish.year,
self.publish.strftime('%m'),
self.publish.strftime('%d'),
self.slug])