gpt4 book ai didi

python - 这可以用 ORM 来完成吗? - Django

转载 作者:行者123 更新时间:2023-12-01 06:17:21 24 4
gpt4 key购买 nike

我在数据库中列出了一些项目,通过 Reddit 的算法排序。

就是这样:

def reddit_ranking(post):
t = time.mktime(post.created_on.timetuple()) - 1134000000
x = post.score

if x>0: y=1
elif x==0: y=-0
else: y=-1

if x<0: z=1
else: z=x

return (log(z) + y * t/45000)
<小时/>

我想知道是否有任何聪明的方法可以使用 Django 的 ORM 来批量更新模型。

如果不这样做:

items = Item.objects.filter(created_on__gte=datetime.now()-timedelta(days=7))
for item in items:
item.reddit_rank = reddit_rank(item)
item.save()
<小时/>

我知道 F() 对象,但我不知道这个函数是否可以在 ORM 内部执行。

<小时/>

有什么想法吗?

非常感谢您的帮助!

最佳答案

手动完成并不需要太多工作:

from django.db import connection

items = Item.objects.filter(created_on__gte=datetime.now()-timedelta(days=7))
cursor = connection.cursor()
cursor.executemany("UPDATE myapp_item SET reddit_rank = %s WHERE id = %s",
[(reddit_rank(item), item.pk) for item in items])
cursor.close()

关于python - 这可以用 ORM 来完成吗? - Django ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2510031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com