我有一些 ID 是 UUID 的帖子模型。现在我想在我的 post_detail 模板中显示一些用户可能还希望看到的随机帖子提案......
这就是我处理用户可能还希望在views.py中看到的帖子提案的方式:
def post_proposals():
post_elements = sorted(
chain(
Model1.objects.all(),
Model2.objects.all(),
Model3.objects.all()
)
)
post_elements_list = list(post_elements) # Conversion to list is requierd by random
post_proposals = random.sample(post_elements_list)
return post_proposals
def post_detail(request, pk):
...
args = {
'post': post,
'post_proposals': post_proposals(),
...
模板.html:
{% for post_proposal in post_proposals %}
<h1>{{ post_proposal.title }}</h1>
{% endfor %}
现在的问题是,据我所知,这会破坏我的数据库性能......一旦我的数据库中存储了很多帖子,查询就会变得庞大。我首先必须获取 3 个模型的所有元素,然后每次向用户显示帖子时从列表中获取 10 个随机条目。
我还发现以下似乎非常有用:
https://elpenia.wordpress.com/2010/05/11/getting-random-objects-from-a-queryset-in-django/
遗憾的是,我无法使用该解决方案,因为我使用的是非顺序字符串的 UUID,而不是使用 ID 时的 int 值。
肥皂起泡泡
米琪卡哇伊
相关分类