1
J'ai quelques éléments répertoriés dans une base de données, classés par l'algorithme de Reddit.Cela peut-il être fait avec l'ORM? - Django
voici:
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)
Je me demande s'il y a une façon intelligente d'utiliser ORM de Django , afin de mettre à jour les modèles en vrac.
Sans cela:
items = Item.objects.filter(created_on__gte=datetime.now()-timedelta(days=7))
for item in items:
item.reddit_rank = reddit_rank(item)
item.save()
Je sais que sur l'objet F(), mais je ne peux pas savoir si cette fonction peut être réalisée à l'intérieur du ORM.
Des idées?
Une aide serait grandement appréciée!
@insin pas très familier avec le curseur. Merci beaucoup, je vais essayer maintenant. – RadiantHex
Comment cela est-il plus efficace que de le faire via l'ORM? L'OP voulait vraiment tout faire par le biais d'une seule requête de mise à jour, mais vous appelez encore 'reddit_rank' une fois pour chaque élément. –