2010-01-05 31 views
7

Tôi muốn kết hợp phân trang với tính năng lọc. Vì tôi có rất nhiều bộ lọc, tôi không muốn gửi chúng cho mỗi yêu cầu GET, vì URL thực sự xấu.django - cách tốt nhất để kết hợp phân trang với lọc và request.POST - như stackoverflow - ajax?

Vì phân trang django sử dụng yêu cầu GET để chuyển các tham số trang, tôi không biết cách kết hợp hai phương pháp này.

Bất kỳ ý tưởng nào?

Tiện ích bổ sung tuyệt vời sẽ là: Làm cách nào để kết hợp phương pháp này với sắp xếp bảng? :-)

Chỉnh sửa:

Thực ra nó hoạt động như phân trang luồng lưu lượng truy cập - câu hỏi của người dùng. Nếu người dùng nhấp vào một số trang được hiển thị đúng trang, không hiển thị thông số nhận được trong url.

Đây là url được gọi. https://stackoverflow.com/api/userquestions.html?page=2&pagesize=10&userId=237690&sort=Recent

Nhưng url hiển thị trong trình duyệt gọn gàng và ngắn gọn. Dường như là ajax. Bất cứ ai một ý tưởng làm thế nào để thực hiện điều này? :)

Nếu URL không được hiển thị trong thanh địa chỉ của trình duyệt, tôi không quan tâm liệu URL đó có đẹp hay không.

Chỉnh sửa: Giải pháp:

Thực hiện cập nhật ajax với tất cả thông số bộ lọc được chuyển đến chế độ xem. Điều này sẽ giúp bạn bắt đầu triển khai ajax cho trang web của mình: link

Do đó, các tham số GET không bao giờ hiển thị trong thanh địa chỉ.

Trả lời

5

có bạn kiểm tra các ứng dụng paginate cho django? nó có thể giúp bạn rất nhiều, sử dụng nó mọi lúc: D

http://code.google.com/p/django-pagination/

+0

Ứng dụng tuyệt vời, đặc biệt vì bạn chỉ phải thay đổi một số thứ trong mẫu của mình. Tuy nhiên, thông số trang vẫn được xử lý dưới dạng biến GET.Tôi cho rằng tôi sẽ mất params bộ lọc của tôi được gửi với POST bằng cách sử dụng phương pháp này, giống như tôi làm trong việc sử dụng phân trang django tiêu chuẩn. –

+2

nhưng nếu bạn làm mới chỉ khối được phân trang bằng ajax, các url GET sẽ không bao giờ xuất hiện trong thanh địa chỉ :) – Jiaaro

+1

tạo chế độ xem tùy chỉnh lọc, sau đó hiển thị mẫu đã được tải trang, bạn sẽ yêu cầu chế độ xem này bằng AJAX và thay thế div "kết quả" hiện tại ... không biết nếu bạn hiểu những gì im nói, không phải là rất tốt giải thích: ( Đăng bất kỳ nghi ngờ – PirosB3

0

tôi đã tìm ra hai giải pháp:

  1. Thay vì sử dụng chỉ các siêu liên kết sử dụng nó bên trong một hình thức POST, tôi không có bất kỳ ví dụ nào bây giờ nhưng tôi nhớ đã sử dụng nó cho các hàm REST trong Ruby trên đường ray
  2. Lưu thông tin truy vấn trong một phiên.

Hy vọng trợ giúp này.

2

Bạn đã xem django-tables2 chưa? Nó cung cấp cho bạn bảng phong cách django-admin mà không cần phải tự viết logic.

Các vấn đề liên quan