เรียงลำดับรายการแบ่งหน้ากรอบส่วนที่เหลือ django ตามวันที่ใน vue

รายการสินค้าจะต้องจัดเรียง (ASC และ DESC) ตามวันที่เมื่อคลิก รายการนี้มีการแบ่งหน้าโดย Django Rest Framework Pagination ดังนั้นหน้าแรกของรายการจึงมีผลลัพธ์เพียง 15 รายการ การเรียงลำดับเริ่มต้นคือวันที่ใหม่ที่สุดก่อน

เมื่อใดก็ตามที่รายการถูกเรียงลำดับ สถานะปัจจุบันจะถูกเรียงลำดับตาม .sort() ผ่านการกลายพันธุ์ใน Vue อย่างไรก็ตาม วิธีนี้ใช้ได้เฉพาะกับสถานะปัจจุบันซึ่งมีเฉพาะรายการที่อยู่ในหน้าแรกเท่านั้น (สมมติว่าผู้ใช้ไม่ได้ไปที่หน้าถัดไป) ซึ่งจะทำให้ลำดับถูกต้องสำหรับผลลัพธ์ต่อหน้าเท่านั้น แต่ไม่ใช่สำหรับผลลัพธ์ทั้งหมด

เพื่อแก้ไขปัญหานี้ ฉันสามารถส่งคำขอ API เพื่อส่งคืนผลลัพธ์ตามลำดับที่ถูกต้อง แต่คำถามของฉันคือ มีวิธีที่ชาญฉลาดกว่าในการทำเช่นนี้หรือไม่


person Vincent    schedule 16.10.2019    source แหล่งที่มา


คำตอบ (1)


คุณต้องทำการเรียงลำดับในแบ็กเอนด์เมื่อคุณทำการแบ่งหน้า โดยพื้นฐานแล้ว วิธี API ของคุณควรรองรับพารามิเตอร์การเรียงลำดับ เรียงลำดับรายการตามพารามิเตอร์นั้น แบ่งหน้าผลลัพธ์หลังจากการเรียงลำดับ และส่งกลับผลลัพธ์ที่มีการแบ่งหน้า

ลูกค้าของคุณไม่สามารถเข้าถึงข้อมูลทั้งหมดได้ ดังนั้นคุณจึงไม่สามารถจัดเรียงในฝั่งไคลเอ็นต์ได้เมื่อมีการแบ่งหน้า จะต้องจัดเรียงผลลัพธ์ก่อนจึงจะมีการแบ่งส่วน

person Ozgur Akcali    schedule 16.10.2019
comment
ขอบคุณสำหรับคำตอบ. โดยพื้นฐานแล้ว ไม่มีวิธีอื่นใดในการจัดเรียงมากกว่าที่ฉันคิด - person Vincent; 16.10.2019