Django: Aktualisieren Sie mehrere ObjektattributePython

Python-Programme
Anonymous
 Django: Aktualisieren Sie mehrere Objektattribute

Post by Anonymous »

Gibt es eine effizientere Möglichkeit, dies vielleicht mit F -Ausdrücken zu tun? Einige wie man das DB -Treffer reduziert? < /P>

# 1st way hits DB twice per object
def something():
pks = [4, 2, 1, 3, 0]
for i in range(len(pks)):
mymodel.objects.get(pk=pks).update(attr=i)

# 2nd way hits DB once per obj and once for the queryset
def something():
pks = [4, 2, 1, 3, 0]
order = Case(*[When(pk=pk, then=pos) for pos, pk in enumerate(pks)])
query = mymodel.objects.filter(pk__in=pks).order_by(order)
for i in range(len(query)):
query.attr = i
query.save()
< /code>

Bearbeiten, um Variablen konsistent zu verschieben. < /p>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post