Django-filter: Dokumentasikan bagaimana Django-filter bekerja dengan Django-pagination

Dibuat pada 13 Agu 2009  ·  20Komentar  ·  Sumber: carltongibson/django-filter

Mereka berdua bekerja sama dengan baik, saya butuh beberapa saat untuk mengutak-atiknya. Berdasarkan contoh di dokumen:

{% 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 %}

Kuncinya adalah Anda harus menggunakan argumen _as_ pagination.

Komentar yang paling membantu

Sangat, sangat berguna. Terima kasih.

Semua 20 komentar

Sangat, sangat berguna. Terima kasih.

Saya menyarankan untuk mendokumentasikan bagaimana ini bekerja dengan penyortiran Django juga. Sayangnya penyortiran Django harus dilakukan sebelum pagination dan tidak mendukung kata kunci 'sebagai', jadi kami _not_ dapat melakukan sesuatu seperti ini:

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

Diarsipkan di hulu di http://github.com/directeur/django-sorting/issues/#issue/4.

Dapatkan masalah ini ketika saya mencoba yang di atas.

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

Ada ide tentang apa itu?

Ada masalah dengan django-pagination: ketika Anda, katakanlah, di halaman 5 dan Anda menerapkan filter, filter itu juga meneruskan variabel "halaman" GET, jadi di halaman yang difilter Anda sudah berada di halaman 5, itu salah . Apakah ada cara untuk mengecualikan dari url variabel yang digunakan Django-pagination saat menerapkan filter? Semoga ini masuk akal...

mdgart,

Saya memecahkan masalah variabel halaman pada klien dengan jQuery dan perpustakaan jQuery Back Button & Query (BBQ). Lihat: 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>

Saat pengguna mengklik tautan filter, javascript memaksa parameter get "halaman" menjadi 1.

Dalam contoh saya, semua filter saya ditampilkan sebagai tautan, terletak di dalam div dengan id "changelist-filter". Anda perlu mengubah pemilih jQuery Anda sebagaimana mestinya.

Semoga ini membantu.

mdgart, jonatonadler,

Saya memecahkan masalah variabel halaman dengan cara yang sedikit berbeda yang menghindari ketergantungan pada javascript: jangan berikan parameter 'halaman' ke FilterSet. Misalnya, berdasarkan contoh di dokumen:
def product_list(permintaan):
data = permintaan.GET.copy()
jika 'halaman' dalam data:
del data['halaman']
f = ProductFilter(data, queryset=Product.objects.all())
return render_to_response('my_app/template.html', {'filter': f})
Berharap untuk membantu.

Solusi yang sangat rapi richardbarran, terima kasih!

Terima kasih. Saya berpikir untuk menambal dokumentasi untuk membicarakan tentang Django-pagination, tetapi saya memiliki masalah kecil: dalam format apa dokumentasi itu? :-(
Ini bukan yang pertama, seperti yang dikeluhkan oleh docutils (setidaknya di komputer saya). Ada saran?

Richard, ini adalah yang pertama tetapi perlu diproses menggunakan sphinx (http://sphinx.pocoo.org/).

Saat saya menggunakan tag autopaginate, saya mendapatkan "object of type 'fooFilter' has no len()" typeerror. Saya yakin saya mendapatkan hasil yang dapat dipertahankan, karena saya dapat mengulangnya dan menampilkan objek tanpa menggunakan Django-pagination. Bagaimana saya bisa memperbaikinya? Terima kasih!

Luar biasa, menyelamatkan saya banyak waktu terima kasih.

Bisakah Anda memberi saya tautan github ke Django-pagination dan Django-sorting yang bekerja bersama, saya mencoba beberapa repositori ini tanpa hasil. saya mendapatkan:

TemplateSyntaxError di /ads/search/
Tertangkap VariableDoesNotExist saat merender: Pencarian gagal untuk kunci [sorted_objects] di u'[{}, {\'csrf_token\' ...

menggunakan template ini

    {% 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>

Terima kasih !

Maaf, saya belum pernah menggunakan penyortiran Django jadi tidak bisa membantu.

Semoga beruntung!

catatan

Bisakah Anda memberi saya tautan github ke Django-pagination dan Django-sorting yang bekerja bersama, saya mencoba beberapa repositori ini tanpa hasil. saya mendapatkan:

TemplateSyntaxError di /ads/search/
Tertangkap VariableDoesNotExist saat merender: Pencarian gagal untuk kunci [sorted_objects] di u'[{}, {\'csrf_token\' ...

menggunakan template ini

  {% 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>

Terima kasih !

jadi, berikut adalah contoh persyaratan pip yang berfungsi untuk pertanyaan saya sebelumnya:

filter-django==0.5.3
django-pagination==1.0.7
-e git://github.com/lukeman/Django-sorting.git#egg =django_sorting

Adakah yang tahu jika menggunakan pagination dan menyortir dengan Django-filter dimungkinkan menggunakan tampilan umum? Saya melihat dari contoh-contoh ini bahwa metode tampilan umum tidak digunakan.

Jika saya memahami pertanyaan Anda, itu mungkin, saya menggunakannya di sini: https://github.com/ouhouhsami/django-geoads/blob/master/geoads/views.py

Jika ada yang tertarik, saya menulis pengganti yang jauh lebih lengkap untuk penyortiran Django, yang disebut penyortir Django: http://django-sorter.readthedocs.org/

Sebagai bagian dari mengatasi masalah pelacak, saya akan menutup yang satu ini. Sudah lebih dari 2 tahun sejak komentar terakhir.

Jika ada yang ingin mengirim permintaan tarik memperbarui dokumentasi yang menunjukkan integrasi dengan solusi pagination/sorting saat ini, saya akan sangat senang untuk meninjaunya, tetapi singkatnya saya akan kembali ke ini lain kali muncul _IRL_.

Saya harap itu masuk akal.

Terima kasih!!!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat