Django (python) uygulamasında tüm nesneler için belirli bir sıradaki konum alanını bir kerede güncellemeye çalışıyorum.Tüm modelleri aynı anda Django'da güncelleştirin
Şimdi böyle yaptım, ancak sorun, bir sürü sorgu yapmasıdır.
servers = frontend_models.Server.objects.all().order_by('-vote_count')
i = 1
for server in servers:
server.last_rank = i
server.save()
i += 1
Model.objects.all().order_by('some_field').update(position=some_number_that_changes_for each_object)
teşekkür ederiz ile güncellemek için bir yolu var mı! Sütun tüm değerleri güncelleştirmek için tek bir SQL sorgusu oluşturur
Model.objects.all().order_by('some_field').update(position=F(some_field)+1)
, bu yüzden de veritabanına etkilidir:
Her nesne için geçirilen sayıyı artırmak ister misiniz? –
django query api, [windows işlevleri] içermiyor (http://www.postgresql.org/docs/9.1/static/tutorial-window.html) (Sanırım). RDBMS'niz bu özelliğe sahipse, [custom sql direct] (https://docs.djangoproject.com/en/dev/topics/db/sql/#executing-custom-sql-directly) dosyasını çalıştırmalısınız. – danihp