Próbuję zaktualizować pole pozycji dla wszystkich obiektów w określonej kolejności naraz w Django (python).Zaktualizuj wszystkie modele naraz w Django
Tak właśnie to zrobiłem, ale problemem jest to, że robi mnóstwo zapytań.
servers = frontend_models.Server.objects.all().order_by('-vote_count')
i = 1
for server in servers:
server.last_rank = i
server.save()
i += 1
Czy istnieje sposób, aby aktualizować z
Model.objects.all().order_by('some_field').update(position=some_number_that_changes_for each_object)
Dziękujemy!
Chcesz zwiększyć liczbę przekazanych dla każdego obiektu? –
api zapytania django nie ma funkcji okna (http://www.postgresql.org/docs/9.1/static/tutorial-window.html) (myślę). Powinieneś wykonać [custom sql bezpośrednio] (https://docs.djangoproject.com/en/dev/topics/db/sql/#executing-custom-sql-directly), jeśli twój RDBMS ma tę funkcję. – danihp