【问题标题】:How to save a re-ordered queryset to database in Django如何将重新排序的查询集保存到 Django 中的数据库
【发布时间】:2016-01-21 07:17:30
【问题描述】:

例如, 我有一个模型

class Question(models.Model):
question_text = models.TextField()
question_number = IntegerField(default=0)

我尝试做:

question_list = Question.objects.order_by('question_number')
#then save the queryset back to the database

我该怎么做?

【问题讨论】:

  • 你不能......你的数据库不存储查询集,它存储单独的数据行。查询集是查询数据库的结果。你想在这里实现什么?您是否尝试 set the default ordering 从您的模型返回的数据?
  • 您为什么要这样做?如果您希望问题按 question_number 排序,只需在获取时使用相同的 order_by 进行排序。

标签: python django


【解决方案1】:

您错过了获取操作。试试这个

question_list = Question.objects.all().order_by("-question_number") # DESC order

或

question_list = Question.objects.all().order_by("question_number") # ASC order

另外如果你想保存,也得试试这个

for question in question_list:
    #Update any field here
    question.save()

【讨论】:

  • Django 不需要“获取”操作,它的大部分查询集操作都是惰性完成的
猜你喜欢
  • 2016-02-24
  • 1970-01-01
  • 2010-10-30
  • 2019-08-13
  • 2017-01-14
  • 2019-03-03
  • 2011-02-19
  • 2018-12-30
  • 2016-11-30
相关资源
最近更新 更多