我们正在网络浏览器上加载模型" Post"的内容,这是由"氦" (我们的流行变量)。
现在,我们想通过" pop_date"来订购相同的内容。 (当我们使用due_date变量时),当用户点击按钮时。
是否可以在不重新加载浏览器页面的情况下立即执行此操作?
我们到目前为止看到的选项:
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'),
答案 0 :(得分:0)
我肯定会选择order_by
。在用户点击按钮后你无法使用sorted
,你必须再次制作另一个request
(你最终可以使用JS但这是一个全新的故事 - 你将不得不提取您需要的所有数据,这将限制您将来不能使用分页)。