জ্যাঙ্গোর সাথে দুটি তারিখের মধ্যে নির্বাচন করুন


116

আমি একটি ক্যোয়ারী তৈরি করতে চাই যা জ্যাঙ্গোর সাথে তারিখগুলির মধ্যে নির্বাচন করে।

আমি জানি কাঁচা এসকিউএল দিয়ে খুব সহজেই কীভাবে এটি করা যায় তবে জ্যাঙ্গো ওআরএম ব্যবহার করে এটি কীভাবে অর্জন করা যায়?

এই স্থানে আমি আমার ক্যোয়ারিতে 30 দিনের তারিখের মধ্যে যোগ করতে চাই:

start_date = datetime.datetime.now() + datetime.timedelta(-30)
context[self.varname] = self.model._default_manager.filter(
    current_issue__isnull=True
    ).live().order_by('-created_at')

উত্তর:


230

__rangeঅপারেটরটি ব্যবহার করুন :

...filter(current_issue__isnull=True, created_at__range=(start_date, end_date))

"তৈরি_্যাট" কোনও মডেলটিতে একটি স্বেচ্ছাসেবী ক্ষেত্র বা রেকর্ডটি তৈরি হওয়ার সময় এটিই কি ডাটাবেসগুলির আসল লগ?
Bigbob556677

@ ফিলিপ 556677 এটি একটি মডেলের একটি স্বেচ্ছাসেবী ক্ষেত্র। আপনি ডেটফিল্ডের অটো_নো_অ্যাড্ড প্যারামিটারটিকে সহজেই সেট করতে সেট করতে পারেন।
Benbb96


1

দুটি পদ্ধতি

.filter(created_at__range=[from_date, to_date])

অন্য পদ্ধতি

.filter(Q(created_at__gte=from_date)&Q(created_at__lte=to_date))
  • gte এর অর্থ সমানের চেয়ে বড়
  • lte এর অর্থ সমান থেকে কম

প্রশ্ন বস্তুগুলি দ্বিতীয় পদ্ধতিতে অপ্রয়োজনীয়, আপনি লিখতে পারেন:.filter(created_at__gte=from_date, created_at__lte=to_date)
CarMoreno

0

যদি আপনি একটি ব্যবহার করছেন DateTimeField, তারিখগুলি সহ ফিল্টারিংয়ে শেষ দিন আইটেম অন্তর্ভুক্ত করা হবে না।

আপনাকে তারিখ হিসাবে মূল্য কাস্ট করতে হবে:

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