如果为True,则将查询集中的项放在列表末尾

时间:2017-01-24 15:21:05

标签: python django list django-queryset

当我想检查日期是否过去时,我有应用程序。如果是,我想把这个项目放在列表的末尾。

这是我的代码,但它不起作用,我收到错误消息:

'QuerySet' object has no attribute 'extend'

我的代码:

    for i in queryset:
        if i.date_end < now():
            queryset.extend(queryset.pop(queryset.index(i)))

2 个答案:

答案 0 :(得分:2)

import urllib import re urlr = "https://blockchain.info/q/txresult/"+hash+"/"+receiver.bitcoin_account urls = "https://blockchain.info/q/txresult/"+hash+"/"+sender.bitcoin_account try: res = urllib.urlopen(urls) resread = res.read() sen = urllib.urlopen(urlr) senread = sen.read() except IOError: resread = "" senread = "" try: resread = int(resread) senread = int(senread) if resread >= 5000000 and senread != 0: ... 不支持所有常见QuerySet操作。无论如何,在迭代时不应修改任何集合。为什么不按降序排列list QuerySet

date_end

这样,过去的所有项目都将在最后。

答案 1 :(得分:0)

你可以这样做:

String output = "";
for(int c = 0; (c = n.read()) >= 0;){
        output += (char)c;
}
System.out.print(output);

如果您不想交换,只需将其移至最后:

for index, item in enumerate(queryset):
  if item.date_end < now():
      queryset[-1], queryset[index] =  item, queryset[-1]