En son Django model nesnesini almaya çalışıyorum ama başarılı olamıyorum.
Bunların hiçbiri çalışmıyor:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
En son Django model nesnesini almaya çalışıyorum ama başarılı olamıyorum.
Bunların hiçbiri çalışmıyor:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
NewsPostImage.objects.filter(newsPostTarget=img_id).first()
. Umarım yardımcı olur.
Yanıtlar:
obj= Model.objects.filter(testfield=12).order_by('-id')[0]
Django'daki belgelere bakın: https://docs.djangoproject.com/en/dev/ref/models/querysets/#latest
En geç () alanında bir alan belirtmeniz gerekiyor. Örneğin.
obj= Model.objects.filter(testfield=12).latest('testfield')
Veya modelinizin Meta'sı get_latest_by belirtiyorsa, field_name
argümanını devre dışı bırakabilirsiniz earliest() or latest()
. Django get_latest_by
varsayılan olarak içinde belirtilen alanı kullanacaktır .
latest
gerçekten tarih alanlarıyla çalışmak üzere tasarlanmıştır (muhtemelen diğer toplam sıralı türlerle de çalışır, ancak emin değildir). Ve alan adını belirtmeden kullanmanın tek yolu get_latest_by
, burada belirtildiği gibi meta özelliğini ayarlamaktır .
Model.objects.latest('id')
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
doğru çözüm
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]