1
created_at alanı olan bir İstemci modelim var. Bir istemci için shell'den create_at'ı güncellemek istiyorum. Ben c = Client.object.get(id=1)
ile aynı şeyi yaptığındaDjango Queryset erişim dizin adına göre
>>> c = Client.objects.all()
>>> c[1].created_at
>>> # I get nothing here since it's not set yet
>>> from django.utils import timezone
>>> c[1].created_at = timezone.now()
>>> c[1].save()
>>> c[1].created_at
>>> # I still get nothing here. Even when I reload the queryset, I get nothing.
Ancak, çalışır: Aşağıdaki yaptı. Bu neden oluyor?
Teşekkür düzenliyor, kurtaracak, evet onlar olur. Neden olsa bu oluyor? Kafam çok karışık. –
çünkü bir Queryset'teki nesneler belleğe kaydedilmez ve queryset nesnelerin yalnızca bir kopyasıdır. Gerçek nesneyi (yani, onu güncelleyebilmek ve kaydedebilmek için) almak için, onu – awwester
belleğinde bir değişkene atamanız gerekir. çünkü her dilim işlemi veritabanına yeni bir sorgu yapar ve yeni bir nesne döndürür. Böylece ilk 'c [1]' sonrakilere bağlı değildir. –