- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑到 Django 是为新闻站点构建的,我正在尝试做一些我认为相对简单的事情。只想在我的博客的侧边栏上获得按年/月计数分组的存档列表。有点像
2018
-Mar(3)
-Feb (2)
-Jan (6)
我在这里做了很多搜索,但似乎已经有一段时间没有人想做这样的事情了,其他一切都已经过时了。
我已经能够弄清楚如何创建每月存档 url/view/tempate 并可以通过转到 blog/2018/03
显示一个月的帖子这是我博客的观点
class BlogListView(generic.ListView):
model = Post
context_object_name = 'post_list'
queryset = Post.objects.all()
template_name = 'post_list.html'
class ArticleMonthArchiveView(MonthArchiveView):
queryset = Post.objects.all()
date_field = "posted"
allow_future = True
def blog_post(request, slug):
blog_post = Post.objects.get(slug=slug)
context = {'blog_post': blog_post}
return render(request, 'blog/blog_post.html', context)
和我的 url(请暂时忽略 url 和路径的混合——正在努力!)
urlpatterns = [
url(r'^$', BlogListView.as_view(), name='blog'),
url(r'^(?P<slug>[\w-]+)/$', blog_post, name='blog_post'),
path('<int:year>/<int:month>/',
ArticleMonthArchiveView.as_view(month_format='%m'),
name="post_archive_month"),
]
我想我需要为我的所有 View 创建另一个上下文字段才能执行此操作吗?但我真的不知道从哪里开始。我知道我显然可以手动创建月份列表并循环尝试查看帖子是否匹配,但我无法想象这是最有效的方法。
有人有我可能在这里遗漏的相当明显的解决方案吗?
最佳答案
我就是这样做的。对于您要实现的目标来说,它可能看起来过于复杂。但这提供了很多控制权。
您想在您的博客应用程序中添加一个“context_processor”以使帖子列表在所有页面上可用。
项目/博客/context_processors.py
from .models import Post
def posts(request):
return {
'all_posts': Post.objects.order_by('posted'),
}
在 TEMPLATES -> OPTIONS -> context_processors 的 settings.py 中添加这个
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
# ...
],
'APP_DIRS': True,
'OPTIONS': {
'debug':True,
'context_processors': [
'django.contrib.auth.context_processors.auth',
# ....
'django.contrib.messages.context_processors.messages',
'project.blog.context_processors.posts', ### ADDED LINE
],
},
},
]
将此添加到基本模板的侧边栏基础.html
<div id='site__side'>
...
{% regroup all_posts by posted.year as year_list %}
<ul>
{% for year in year_list %}
<li>{{ year.grouper }}
{% regroup year.list by posted.month as month_list %}
<ul>
{% for month in month_list %}
<li><a href="{% url 'blog:post_archive_month' year.grouper month.grouper %}">{{ month.list.0.posted|date:'b' }} ({{ month.list|length }})</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
...
</div>
{{ month.list.0.posted|date:'b' }} 以 3 个字母的文本格式显示月份
编辑:{{ month.list|length }} 用于计数
关于python - Django Blog Archive--显示包含帖子的年月列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49440657/
我正在为 https://ghost.org/ 在本地开发一个主题 我遇到了很多问题。 但是没有日志。我不知道为什么会失败。 是否有任何选项可以在开发时显示日志一个https://ghost.org/
我正在为 https://ghost.org/ 在本地开发一个主题 我遇到了很多问题。 但是没有日志。我不知道为什么会失败。 是否有任何选项可以在开发时显示日志一个https://ghost.org/
app.get("/blogs", function(req, res){ Blog.find({}, function(err, blogs){ if(err){
我正在努力理解将参数传递给网址的两种方式(/blog/12 与 /blog?id=12)之间有什么区别。 在哪些情况下,其中一种优于另一种?对于使用哪一种有任何一般建议吗? 最佳答案 在 /blog?
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
使用 Ghost 博客 routes.yaml 文件,可以使用 collections block 来创建由某些标签和/或其他数据组成的自定义集合。您还可以告诉此集合使用自定义主题模板,请参阅: ht
我将位于 www.domain.com 的主站点和位于 blog.domain.com 的旧 wordpress 博客合并到一个全新的 Wordpress 安装中。我导出并导入了所有旧博客文章,以便它
模型.py: from django.db import models class Blog(models.Model): title = models.CharField(max_lengt
我认为这很简单,但它似乎不适合我。我把我的 httpd.conf: RewriteCond %{HTTP_HOST} ^blog\.domain\.com [NC] RewriteRule ^(.+)
我已经成功地将 www.my-website/blog.php 重写为 www.my-website/blog 现在,我想对我的 blog-detail.php 页面做进一步的事情 从 www.my-
在最终让我的代码向我的数据库发布一个 URL 友好的标题(供以后用作 SEO 优化的 URL)之后,我现在正在研究如何让我的博客脚本接受所述 URL。 理想情况下,我希望我的 URLS 以类似于堆栈溢
当NPM运行Build My Next.js项目时,我在控制台中收到以下错误:。这一切为什么要发生?
什么 RewriteRule (使用 .htaccess/mod_rewrite )我应该用来重定向 http://example.com/blog/ (带 www 或不带)到 http://blog
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 7年前关闭。 Improve this questi
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8 年前关闭。 Improve this
我有一个博客,我一直在考虑发布一个 XML sitemap对于它,其中将包括索引页面、文件页面和每个单独的博客文章的条目。这是一个坏主意吗?这是一个好(或有用)的想法吗?我对 特别感兴趣elemen
关于我最近经常遇到的问题的快速提问: 很多次我从博客中寻找信息,找到非常有趣和有用的例子,却发现博客作者已经将代码显示为图像.. 没有可用的剪切和粘贴功能,每个人如何处理?在别处查找代码还是全部输入?
您是否认为撰写软件(即拥有博客)和谈论软件(和概念)使您成为更好的程序员? 最佳答案 从统计学上讲是的。您只保留阅读和听到的内容的20%,但保留您教的内容的80%。 通过写一些东西或对其进行教导,您会
我尝试了 blogger.com - 它不支持这种明显的事情L 将图像从我的计算机复制粘贴到我正在编辑的新博客文章中。是否有任何博客网站,这将支持这一点? 最佳答案 另一种选择是将 Blogger 设
我是一名优秀的程序员,十分优秀!