澄清一下,我有数千个 Property 项目,每个项目都有一个“present”字段(等等)。要重置系统以再次使用,我需要将每个项目的“属性”字段设置为 false。现在,当然有一个简单的方法来做到这一点,那就是:
for obj in Property.objects.all():
obj.present = False
obj.save()
Run Code Online (Sandbox Code Playgroud)
但这在我的开发服务器上需要近 30 秒。我觉得一定有更好的方法,所以我尝试使用 Django 的查询集限制加载的字段only:
for obj in Property.objects.only('present'):
obj.present = False
obj.save()
Run Code Online (Sandbox Code Playgroud)
无论出于何种原因,这实际上比获取整个对象花费的时间更长。
因为我需要不加选择地将所有这些值设置为 False,有没有更快的方法?除了“go do it”命令之外,此函数不接受任何用户输入,因此我觉得本机 SQL 命令将是一个安全的选项,但我对 SQL 的了解不足以起草这样的命令。
谢谢大家。
我在使用 Django 的表中输出日期时遇到问题。
我需要输出到 html 的日期采用默认格式 (YYYY-MM-DD),但输出格式为 Month-Name Day, Year。例如,如果日期为 2008-01-10,则模板生成“2008 年 1 月 10 日”。
令人不安的部分是,在 views.py 中,我将日期打印到控制台,因为它们被传递到模板,并且它们采用 YYYY-MM-DD 格式。但不知何故,模板错误地呈现日期。
我尝试在 settings.py 中设置 USE_L10N = False,但无济于事。我什至断开了模板与任何“基本模板”的连接,以确保没有 css 或 javascript 问题。但印刷错误仍然存在。有任何想法吗?
django ×2
apache-spark ×1
datefield ×1
datetime ×1
format ×1
performance ×1
python ×1
templates ×1