জ্যাঙ্গোতে ফিল্টার সহ সর্বশেষতম রেকর্ড পান


90

আমি সর্বশেষতম জ্যাঙ্গো মডেল অবজেক্টটি পাওয়ার চেষ্টা করছি তবে সফল বলে মনে হচ্ছে না।

এগুলির কোনওটিই কাজ করছে না:

obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)

4
আপনি চেষ্টা করেছেন:obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
ক্যাথরিন

@ ক্যাথরিন, একটি মোহন মত কাজ! : ডি। আপনি এটি উত্তর হিসাবে লিখতে চান যাতে আমি এটি পরীক্ষা করতে পারি?
দানিয়র

2018 সালে NewsPostImage.objects.filter(newsPostTarget=img_id).first()। আশা করি এটা সাহায্য করবে.
এনগাটিয়া ফ্রাঙ্কলাইন

উত্তর:


101
obj= Model.objects.filter(testfield=12).order_by('-id')[0]

10
@ ডেভমারভিন এটি ভুল নয়; এই সমস্যাটি সমাধানের একাধিক উপায় রয়েছে এবং এই উত্তর এবং অন্যান্য দুটিই সঠিক।
জর্দান

4
নোট করুন এটি অনুমান করে তোলে যে আইডি একটি সিকোয়েন্সড প্রাথমিক কী পূর্ণসংখ্যা। যা সাধারণত জ্যাঙ্গোর জন্য ডিফল্ট, তবে কখনও কখনও তা হয় না।
dোলোর

4
এটি বিপজ্জনক হতে পারে কারণ ফিল্টার একটি খালি তালিকা ফিরিয়ে দিতে পারে
কিংস্টন চ্যান

'-id' অর্ডার রিভার্স করতে ব্যবহৃত হয়!
ইন্দ্রা

4
[0] এর পরিবর্তে প্রথম।)?
ফেজজেনেম

119

জাজানো থেকে দস্তাবেজগুলি দেখুন: 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()। জ্যাঙ্গো get_latest_byডিফল্টরূপে নির্দিষ্ট করা ক্ষেত্রটি ব্যবহার করবে ।


4
"টেস্টফিল্ড" কি কোনও তারিখের ক্ষেত্র হতে হবে?
tani-rokk


17

latestতারিখ ক্ষেত্রের সাথে কাজ করার জন্য সত্যই ডিজাইন করা হয়েছে (এটি সম্ভবত অন্যান্য মোট অর্ডারযুক্ত ধরণের সাথেও কাজ করে তবে নিশ্চিত নয়)। এবং ক্ষেত্রের নামটি নির্দিষ্ট না করে আপনি কেবলমাত্র এটি ব্যবহার করতে পারেন তা এখানেget_latest_by উল্লেখ করা মেটা অ্যাট্রিবিউট সেট করে ।


8
এটি প্রাথমিক কীগুলির সাথে কাজ করে, আপনি সর্বদা এরকম কিছু করতে পারেন:Model.objects.latest('id')
আন্ডার

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.