There have been some talks about making it possible to do slices of a queryset and then be able to use update on them before, but AFAIK there have never been made anything. I don't think you can copy a slice of a queryset, but in this case you wont need to. If your order is an unique integer, you would be able to do this:
qs = AModel.objects.exclude(state="F").order_by("order")
if len(qs) > 3:
slice = qs.exclude(order__gt=qs[3])
else:
slice = qs
slice.update(state='F')
I use exclude to remove the unwanted elements, but this will only work if the order is unique, else you wont be able to know how many you update. In case order is not unique it will still be possible using a second and unique arg in order:
qs = AModel.objects.exclude(state="F").order_by("order", "pk")
if len(qs) > 3:
slice = qs.exclude(order__gt=qs[3]).exclude(order=qs[3], pk__gt=qs[3])
...