Django-filter: وثق كيف يعمل مرشح django مع django-pagination

تم إنشاؤها على ١٣ أغسطس ٢٠٠٩  ·  20تعليقات  ·  مصدر: carltongibson/django-filter

كلاهما يعملان بشكل جيد معًا ، وقد استغرق الأمر بعض الوقت للتلاعب بها. بناءً على المثال الموجود في المستندات:

{% block content %}
    <form action="" method="get">
        {{ f.form.as_p }}
        <input type="submit" />
    </form>

    {% autopaginate f.qs 40 as filter_list %}

    {% for obj in filter_list %}
        {{ obj.name }} - ${{ obj.price }}<br />
    {% endfor %}

    {% paginate %}
{% endblock %}

المفتاح هو أنه يجب عليك استخدام وسيطة ترقيم الصفحات _as_.

التعليق الأكثر فائدة

مفيد جدا جدا. شكرا لك.

ال 20 كومينتر

مفيد جدا جدا. شكرا لك.

أود أن أقترح توثيق كيفية عمل ذلك مع فرز django أيضًا. لسوء الحظ ، يجب أن يتم فرز django قبل ترقيم الصفحات ولا يدعم الكلمة الرئيسية "as" ، لذلك نحن _ غير قادرين على القيام بشيء مثل هذا:

{% autosort f.qs as actionlog %}
{% autopaginate actionlog 30 %}

تم حفظه في المنبع على http://github.com/directeur/django-sorting/issues/#issue/4.

احصل على هذه المشكلة عندما أحاول ما سبق.

http://code.google.com/p/django-pagination/issues/detail؟id=59#c0

أي أفكار حول ما يمكن أن يكون؟

هناك مشكلة في django-pagination: عندما تكون ، على سبيل المثال ، في الصفحة 5 وتقوم بتطبيق مرشح ، فإن المرشح يمرر متغير GET "للصفحة" أيضًا ، لذلك في الصفحة التي تمت تصفيتها أنت بالفعل في الصفحة 5 ، هذا خطأ . هل هناك طريقة لاستبعاد المتغير الذي تستخدمه django-pagination عند تطبيق مرشح من عنوان url؟ أتمنى أن يكون هذا منطقيًا ...

مدجارت

لقد قمت بحل مشكلة متغير الصفحة على العميل باستخدام jQuery ومكتبة jQuery Back Button & Query (BBQ). انظر: http://benalman.com/code/projects/jquery-bbq/docs/files/jquery-ba-bbq-js.html

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery.ba-bbq.min.js"></script>
<script type="text/javascript">
  // on page load complete
  $(function(){
    // force all filter links to return to page 1
    $('#changelist-filter a').querystring('page=1');
  });
</script>

عندما ينقر المستخدم فوق ارتباط عامل التصفية ، يفرض جافا سكريبت معلمة get من "الصفحة" على 1.

في المثال الخاص بي ، يتم عرض جميع عوامل التصفية الخاصة بي كروابط ، تقع داخل div مع معرف "changelist-filter". ستحتاج إلى تغيير مُحدد jQuery بالشكل المناسب.

أتمنى أن يساعدك هذا.

مدجارت ، جوناثونادلر ،

لقد قمت بحل مشكلة متغير الصفحة بطريقة مختلفة قليلاً تتجنب الاعتماد على جافا سكريبت: ببساطة لا تمرر معلمة الصفحة إلى FilterSet. على سبيل المثال ، بناءً على المثال الموجود في المستندات:
def product_list (طلب):
data = request.GET.copy ()
إذا كانت "الصفحة" في البيانات:
del data ['page']
f = ProductFilter (data، queryset = Product.objects.all ())
إرجاع render_to_response ('my_app / template.html'، {'filter': f})
نأمل في المساعدة.

حل أنيق جدا ريتشاردباران ، شكرا!

شكرا. فكرت في ترقيع الوثائق للحديث عن django-pagination ، لكن لدي مشكلة صغيرة: ما هو تنسيق التوثيق؟ :-(
إنه ليس أول شيء ، حيث يشكو docutils من ذلك (على الأقل على جهاز الكمبيوتر الخاص بي). أي اقتراحات؟

ريتشارد ، إنه أول شيء ولكنه يحتاج إلى المعالجة باستخدام أبو الهول (http://sphinx.pocoo.org/).

في اللحظة التي أستخدم فيها علامة الترقيم التلقائي ، أحصل على خطأ في "كائن من النوع 'fooFilter' لا يحتوي على len ()" خطأ في الكتابة. أنا متأكد من أنني حصلت على النتيجة القابلة للتمكين ، لأنني أستطيع التكرار على الرغم من ذلك وعرض الكائنات دون استخدام django-pagination. كيف يمكنني إصلاح ذلك؟ شكرا!

ممتاز ، وفر لي الكثير من الوقت شكرا.

هل يمكن أن تعطيني روابط github إلى django-pagination و django-Sorting التي تعمل معًا ، لقد جربت بعض هذه المستودعات دون نجاح. أحصل على:

TemplateSyntaxError في / ads / search /
تم القبض على VariableDoesNotExist أثناء العرض: فشل البحث عن المفتاح [Sorted_objects] في u '[{} ، {\' csrf_token \ '...

باستخدام هذا النموذج

    {% autosort filter.qs as sorted_objects %}
    {% autopaginate sorted_objects 10 as object_list %}

    {% for object in object_list %}
        {{ object }}
    {% endfor %}

    {% paginate %}  

    <ul>
        <li>{% anchor price "First Field" %}</li>
        <li>{% anchor surface "Other Field" %}</li>
    </ul>

شكرا !

عُذْرًا ، لَمْ أَسْتَخْدِمْ دِجْانغُو-تَرْتِيبٌ ، حَتَّى لاَ يُمْكِنُ أَنْ أَفْعَلَ.

حظا طيبا وفقك الله!

ملحوظة

هل يمكن أن تعطيني روابط github إلى django-pagination و django-Sorting التي تعمل معًا ، لقد جربت بعض هذه المستودعات دون نجاح. أحصل على:

TemplateSyntaxError في / ads / search /
تم القبض على VariableDoesNotExist أثناء العرض: فشل البحث عن المفتاح [Sorted_objects] في u '[{} ، {\' csrf_token \ '...

باستخدام هذا النموذج

  {% autosort filter.qs as sorted_objects %}
  {% autopaginate sorted_objects 10 as object_list %}

  {% for object in object_list %}
      {{ object }}
  {% endfor %}

  {% paginate %}  

  <ul>
      <li>{% anchor price "First Field" %}</li>
      <li>{% anchor surface "Other Field" %}</li>
  </ul>

شكرا !

إذن ، إليك مثال على متطلبات نقطة العمل لسؤالي السابق:

مرشح django == 0.5.3
django-pagination == 1.0.7
-e git: //github.com/lukeman/django-sorting.git#egg = django_sorting

حاول استخدام شوكة بلدي:
https://github.com/camilonova/django-sorting

هل يعرف أي شخص ما إذا كان استخدام ترقيم الصفحات والفرز باستخدام مرشح django ممكنًا باستخدام طرق عرض عامة؟ أرى من هذه الأمثلة أن طريقة العرض العامة لا يتم استخدامها.

إذا فهمت سؤالك ، فمن الممكن استخدامه هنا: https://github.com/ouhouhsami/django-geoads/blob/master/geoads/views.py

في حالة اهتمام أي شخص ، كتبت بديلاً أكثر اكتمالاً لفرز django ، يسمى django-Sorter: http://django-sorter.readthedocs.org/

كجزء من متابعة أداة تعقب المشكلات ، سأغلق هذا. مضى أكثر من عامين على آخر تعليق.

إذا أراد أي شخص إرسال طلب سحب لتحديث الوثائق التي توضح التكامل مع حلول ترقيم الصفحات / الفرز الحالية ، فسأكون سعيدًا حقًا بمراجعتها ، ولكن بعد ذلك سأعود إلى هذا في المرة القادمة التي سيظهر فيها _IRL_.

وآمل أن يجعل الشعور.

شكرا!!!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات