জ্যাঙ্গো ক্যোয়ারসেটে ফিল্টারের চেয়ে কম বা সমান কীভাবে করবেন?


175

আমি প্রোফাইল হিসাবে পরিচিত প্রতিটি ব্যবহারকারী প্রোফাইলে একটি কাস্টম ফিল্ড দ্বারা ব্যবহারকারীদের ফিল্টার করার চেষ্টা করছি। এই ক্ষেত্রটিকে স্তর বলা হয় এবং 0 থেকে 3 এর মধ্যে একটি পূর্ণসংখ্যা হয়।

যদি আমি সমান ব্যবহার করে ফিল্টার করি তবে আমি প্রত্যাশার মতো নির্বাচিত স্তরযুক্ত ব্যবহারকারীদের একটি তালিকা পেয়েছি:

user_list = User.objects.filter(userprofile__level = 0)

আমি যখন এর চেয়ে কম ব্যবহার করে ফিল্টার করার চেষ্টা করি:

user_list = User.objects.filter(userprofile__level < 3)

আমি ত্রুটি পেয়েছি:

বিশ্বব্যাপী নাম 'ব্যবহারকারীর প্রোফাইলে_সামান্য' সংজ্ঞায়িত করা হয়নি

<বা> দ্বারা ফিল্টার করার কোনও উপায় আছে বা আমি ভুল গাছটি ছাঁটাই করছি।


2
@ ব্রেসবটন্ড যদিও ডক্সটি দুর্দান্ত দেখাচ্ছে - কাঠামোগত গঠন এবং বিন্যাস এতটাই দুর্বল যে কোনও সরাসরি লিঙ্ক ছাড়াই এগুলি সবই অকেজো
রানলুপ

@ ব্রেসবোটন্ড দুর্ভাগ্যক্রমে সেই লিঙ্কটি এখন মারা গেছে :(
ডেনেন

দস্তাবেজের জন্য কার্যকারী লিঙ্ক: ডকস.ডজ্যাঙ্গোপ্রজেক্ট /en/১১.১১/ref/models/querysets/#gt
গৌরব পান্ডে

উত্তর:


337

এর চেয়ে কম বা সমান:

User.objects.filter(userprofile__level__lte=0)

বৃহত্তর অথবা সমান:

User.objects.filter(userprofile__level__gte=0)

তেমনিভাবে, এর ltচেয়ে কম এবং এর চেয়েও কম gtজন্য। আপনি ডকুমেন্টেশনে সেগুলি সন্ধান করতে পারেন ।


2
বাহ, দ্রুত ছিল :)। এটি কম বা সমান জন্য দুর্দান্ত কাজ করে তবে এর চেয়ে কম কীভাবে হবে? (ব্যবহারকারীর প্রোফাইলে__ লেভেল__ল্ট = 3) কাজ করছে বলে মনে হচ্ছে না
ফিংলিশ

1
এটা করে; তবে যে কোনও ক্ষেত্রে, আপনি ফিল্টার (__ lt) এর পরিবর্তে (__ gte) বাদ দিতেও পারেন।
লক্ষণ প্রসাদ

2
এবং ভুলে যাবেন না যে দুটি __আন্ডারলাইন রয়েছে
অ্যান্ডিলাব

আমি এই ত্রুটিটি পেয়ে যাচ্ছি -> eld FieldError Auto অটোফিল্ডের জন্য অসমর্থিত অনুসন্ধান 'স্তর' বা ফিল্ডে যোগদানের অনুমতি নেই।
অরবিন্দ আর পিল্লাই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.