【发布时间】:2023-03-29 00:19:01
【问题描述】:
我们正在网络浏览器上加载模型“Post”的内容,该模型按“helium”(我们的流行变量)排序。
现在,我们希望在用户单击按钮时按“pop_date”(我们的due_date 变量)对相同的内容进行排序。
是否可以在不重新加载浏览器页面的情况下立即完成?
到目前为止我们看到的选项:
- 更改“order_by”并请求新列表(对数据库的新操作,重新上传所有媒体)
- 使用python“排序”功能(加载的许多帖子的内存问题)
models.py
class Post(models.Model):
pub_date = models.DateTimeField('date published',auto_now=True)
pop_date = models.DateTimeField('Popping time', blank=False)
helium=models.IntegerField(default=0)
(...)
views.py(查询)
Post.objects.filter(pop_date__gte=timezone.now()).order_by(self.ordering,'-id')
url.py
# Order by Helium
url(r'^(?P<slug>[-\w]+)/popular$', views.IndexView.as_view(ordering='-helium'), name='index'),
# Order by Popping time
url(r'^(?P<slug>[-\w]+)/timeline$', views.IndexView.as_view(ordering='pop_date'), name='index_now'),
【问题讨论】:
-
“重新上传所有媒体”:不,网络浏览器足够智能,只会重新加载 HTML 内容。
标签: javascript jquery django django-models django-views