[Django]-Django calling save on a QuerySet object – 'QuerySet' object has no attribute 'save'

26👍

You’ll want to use the update method since you’re dealing with multiple objects:

https://docs.djangoproject.com/en/2.0/topics/db/queries/#updating-multiple-objects-at-once

👤brianz

21👍

filter returns a queryset. A queryset isn’t a single object, it’s a group of objects so it doesn’t make sense to call save() on a queryset. Instead you save each individual object IN the queryset:

game_participants = GameParticipant.objects.filter(player=player, game=game)
for object in game_participants:
    object.save()

2👍

It is possible to get this error by assigning not saved object to another object foreign field.

    for project in projects:
        project.day = day
    day.save()

and the right way of this is:

    day.save()
    for project in projects:
        project.day = day

2👍

filter return a list and if your want a specific single object from it you need give the index of that object

game_participant = GameParticipant.objects.filter(player=player, game=game)[0]

2👍

If you use filter() function then you must loop the data, then use save() function

std = Student.objects.filter(player=player, game=game)
for i in std:
  i.name = "somthing"
  i.save()

If you use the get() function then use the save() function without a loop.

std = Student.objects.get(player=player, game=game)
std.name = "somthing"
std.save()

0👍

def Clearlist(request):
    que = Feeds.objects.filter(selected=True)
    for i in que:
        i.selected = False
        i.save()
    return redirect('core:all')

this is a good way to save a into queryset

👤Micvel

0👍

New in Django 2.2: bulk_update

objs = [
    Entry.objects.create(headline='Entry 1'),
    Entry.objects.create(headline='Entry 2'),
]
objs[0].headline = 'This is entry 1'
objs[1].headline = 'This is entry 2'
Entry.objects.bulk_update(objs, ['headline'])

0👍

when you use the queryset maybe it return a list that why u should use

game_participant = GameParticipant.objects.filter(player=player, game=game)[0]

instead of

game_participant = GameParticipant.objects.filter(player=player, game=game)

try this it work for me

Leave a comment