Django admin: الحصول على استعلام تصفية حسب الحصول على سلسلة، تماما كما رأينا في قائمة التغيير؟
-
18-09-2019 - |
سؤال
في مسؤول Django، يمكن للمستخدم تعيين المرشحات التي تحد من الصفوف المعروضة في قائمة التغيير. كيف يمكنني الحصول على مثيل استعلام مع مرشحات تعيين كما هو محدد بواسطة سلسلة الاستعلام؟ على سبيل المثال، إذا مررت؟ start_date_gte = 2009-11-06، سيقوم مسؤول Django بتطبيق Qs.Filter (start_date__gte ...) في مكان ما. كيف يمكنني الوصول إلى مثل هذه الاستئصال؟
أحتاج ذلك لأنه من الواضح أنه لا أريد إعادة كتابة التعليمات البرمجية التي تأخذ هذه المعلمات والمرشح () SA QuerySet وفقا لذلك.
المحلول
يبدوا مثيرا للأهتمام. ومع ذلك، كنت أتحدث عن استخدام تلك الاستعلام داخل المسؤول. وجدت الجواب، انظر أدناه:
class MyAdmin(admin.ModelAdmin):
def changelist_view(self, request, extra_context=None):
from django.contrib.admin.views.main import ChangeList
cl = ChangeList(request, self.model, self.list_display, self.list_display_links, self.list_filter, self.date_hierarchy, self.search_fields, self.list_select_related, self.list_per_page, self.list_editable, self)
# getting query set with same filters like current change list
filtered_query_set = cl.get_query_set()
نصائح أخرى
إلقاء نظرة على django-filter..
لا تنتمي إلى StackOverflow