Urutkan daftar paginasi kerangka istirahat Django berdasarkan tanggal di vue

Daftar item perlu diurutkan (ASC dan DESC) berdasarkan tanggal klik. Daftar item ini diberi nomor halaman oleh Django Rest Framework Pagination. Oleh karena itu, halaman pertama item hanya berisi 15 hasil. Penyortiran default adalah tanggal terbaru terlebih dahulu.

Setiap kali daftar diurutkan, keadaan saat ini diurutkan berdasarkan .sort(), melalui mutasi di Vue. Namun, ini berfungsi hanya untuk keadaan saat ini yang hanya berisi daftar item yang ada di halaman pertama (dengan asumsi pengguna tidak membuka halaman berikutnya). Hal ini menyebabkan pesanan hanya valid untuk hasil per halaman, namun tidak untuk semua hasil.

Untuk mengatasi ini, saya dapat melakukan permintaan API untuk mengembalikan hasil dalam urutan yang benar, tetapi pertanyaan saya adalah, apakah ada cara yang lebih cerdas untuk melakukan ini?


person Vincent    schedule 16.10.2019    source sumber


Jawaban (1)


Anda perlu melakukan pengurutan di backend ketika Anda melakukan penomoran halaman, pada dasarnya, metode API Anda harus mendukung parameter penyortiran, mengurutkan daftar berdasarkan parameter itu, memberi nomor halaman pada hasil setelah pengurutan dan mengembalikan hasil yang diberi nomor halaman.

Klien Anda tidak memiliki akses ke semua data, jadi Anda tidak dapat melakukan pengurutan di sisi klien ketika ada penomoran halaman, hasilnya harus diurutkan sebelum sepotong diambil.

person Ozgur Akcali    schedule 16.10.2019
comment
Terima kasih atas jawaban Anda. Jadi pada dasarnya, tidak ada cara lain untuk melakukan penyortiran selain yang saya kira. - person Vincent; 16.10.2019