Django admin: الحصول على استعلام تصفية حسب الحصول على سلسلة، تماما كما رأينا في قائمة التغيير؟

StackOverflow https://stackoverflow.com/questions/1686934

  •  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..

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top