python - 显示来自 2 个表的数据并对其进行排序
问题描述
我有 2 个具有相同字段的表:
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
class Post2(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
我在同一页面上显示它们:
def home(request):
context = {
'posts': Post.objects.all(),
'post2': Post2.objects.all()
}
return render(request, 'home.html', context)
我在html中使用它:
{% for post in posts %}
<p>{{ post.title }}</p>
{% endfor %}
{% for post in post2 %}
<p>{{ post2.title }}</p>
{% endfor %}
我想做的是根据发布的日期显示它们。目前它正在这样做,但表格没有混合。首先显示Post
按日期排序的表格中的帖子,然后显示Post2
基于日期的表格中的帖子。有没有办法按日期排序,但考虑到两个表,所以两个表中的帖子会混合并按日期显示?
解决方案
尝试使用union
def home(request):
posts = Post.objects.all()
posts2 = Post2.objects.all()
posts_together = posts.union(posts2, all=True).order_by()
#all=True to allow duplicates
# you can use order_by() with date
context = {
'posts_together': posts_together
}
return render(request, 'home.html', context)
这是关于联合的文档
推荐阅读
- r-markdown - xtable 将 [ht] 打印为 pdf
- ios - 使用物理 iOS 设备在 Flutter 应用中使用 FirebaseAuth 登录时出错
- json - 如何使用 JSONPATH 从带有嵌套对象的 JSON 数组中获取多个值?
- jquery-select2 - Select2 的占位符只显示半个单词
- android - 用 Cocoapod 替换最新 KMM 中的 ./gradlew packForXcode 是什么?
- sublimetext3 - 关闭后崇高文本不会永久保存文件(如何在关闭后禁用撤消)
- python - Codeforces Round #723 Div.2 1526A - 平均不等式
- javascript - 如何在 discord.js 中拆分定义的字符串
- python - Matplotlib 子图 gridspec_kw 不适用于 wspace
- javascript - 如何在 HTML、CSS、JS 的响应式导航栏中更改活动选项卡?