मैं नवीनतम Django मॉडल ऑब्जेक्ट प्राप्त करने का प्रयास कर रहा हूं, लेकिन सफल नहीं हो सकता।
इनमें से कोई भी काम नहीं कर रहा है:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
मैं नवीनतम Django मॉडल ऑब्जेक्ट प्राप्त करने का प्रयास कर रहा हूं, लेकिन सफल नहीं हो सकता।
इनमें से कोई भी काम नहीं कर रहा है:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
NewsPostImage.objects.filter(newsPostTarget=img_id).first()
। आशा करता हूँ की ये काम करेगा।
जवाबों:
obj= Model.objects.filter(testfield=12).order_by('-id')[0]
डॉक्सो से डॉक्स देखें: https://docs.djangoproject.com/en/dev/ref/models/querysets/#latest
आपको नवीनतम () में फ़ील्ड निर्दिष्ट करने की आवश्यकता है। जैसे।
obj= Model.objects.filter(testfield=12).latest('testfield')
या यदि आपके मॉडल का मेटा get_latest_by को निर्दिष्ट करता है, तो आप field_name
तर्क को छोड़ सकते हैं earliest() or latest()
। Django get_latest_by
डिफ़ॉल्ट रूप से निर्दिष्ट फ़ील्ड का उपयोग करेगा ।
latest
वास्तव में दिनांक फ़ील्ड के साथ काम करने के लिए डिज़ाइन किया गया है (यह संभवतः अन्य कुल-ऑर्डर किए गए प्रकारों के साथ भी काम करता है, लेकिन निश्चित नहीं)। और क्षेत्र का नाम निर्दिष्ट किए बिना आप इसका उपयोग कर सकते हैं एकमात्र तरीका get_latest_by
मेटा विशेषता सेट करके है, जैसा कि यहां बताया गया है ।
Model.objects.latest('id')
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]