Comments (6)
Hi Bertrand, thanks for reporting.
Could you please be more specific about how to reproduce this bug? Where do you expect to see the querydict? Where is it missing?
from django-endless-pagination.
Hi Francesco,
What I am trying to do is filtering the objects of an AjaxListView using Haystack.
This is what my view looks like:
class ExampleListView(AjaxListView):
model = Example
def get_queryset(self):
Model = self.model
qs = Model.objects.all()
search_query = self.request.GET.get('q')
if search_query:
sqs = SearchQuerySet().models(Model)
sqs = sqs.auto_query(search_query)
pk_list = sqs.values_list('pk', flat=True)
qs = qs.filter(pk__in=pk_list)
return qs
The request therefore looks like /url/?q=molière
or /url/?q=molière&page=3
.
When I send such requests, the response is correct, except that AjaxListView removes other GET arguments than page
in the responsed path.
To resume: /url/?q=molière&page=3
> correct HTML that takes the Haystack search into account but the url becomes /url/?page=3
.
I tried to figure out what was going on in endless_pagination, but didn't find. Maybe it has something to do with endless_pagination.utils.get_querystring_for_page
but that function looks correct to me.
from django-endless-pagination.
Thanks for the quick reply Bertrand.
What version of endless pagination are you using? 1.1 or the current trunk?
Is the 'q=something' removed when you click on another page, or just missing from request.GET?
from django-endless-pagination.
Oh, forget about it. The problem was not coming from endless-pagination. This was coming from a javascript I use to automatically change the GET request as we go down in the endless page. The page I am talking about is http://alpha.dezede.org/evenements/.
And the (ugly) javascript in cause is window.history.pushState({},"", "{{ request.path }}{% if page_number > 1 %}?page={{ page_number }}{% endif %}");
.
So, this issue is invalid but my problem kind of stays the same. The proper solution (I guess) would be to implement these automatic GET changes in endless-pagination, since it is a common feature nowadays.
from django-endless-pagination.
Cool Bertrand.
I guess you are suggesting something like #2.
The Javascript refactoring is in progress in trunk, still not documented, but in the near future it will be quite simple to implement Pjax. You might want to take a look at https://github.com/frankban/django-endless-pagination/blob/master/endless_pagination/static/endless_pagination/js/endless-pagination.js
In the meanwhile, if you have any suggestion about how to implement pushState in Endless Pagination, please feel free to add comments in #2. history.js seems very interesting IMHO.
from django-endless-pagination.
Yes, what I made is something like history.js (except that history.js probably handles more outdated browsers).
But there is still two remaining issues:
- How can we properly set GET arguments using jQuery? I just made a try using http://archive.plugins.jquery.com/project/query-object. This works perfectly, even though it wasn't updated for 3 years.
- We have the solution to change GET as new pages are loaded via Ajax. But what if one goes down, loads a bunch of pages, then goes up 4 "pages" before? The URL is still the one of the lastly loaded page. Idealy, the behaviour should be like on FAIL Blog.
I have nearly no idea on how to achieve this last issue.
from django-endless-pagination.
Related Issues (20)
- Buggy PAGINATION with order by id DESC HOT 1
- How to avoid removing “page” parameter from URI? HOT 1
- not load css div HOT 1
- {{ pages.previous }} on page 2 doesn't have ?page=1 in URL
- Render with Context, instead of RequestContext
- A global setting to decide the number of elements in one page HOT 1
- Django Paginator API should be respected
- [SQL optimization] Use keyset pagination (a.k.a. seek method)
- Adding text at the end of pagination
- Paginate template tag not thread safe
- This project is supported? development will be? HOT 10
- Warning in loader.py in Django 1.8 HOT 7
- -1 -2 -3 -4 Page URLS HOT 1
- When new objects are loaded, it does not appear in the source page.
- Is there any way to get counter on endless pagination items? HOT 1
- RemovedInDjango19Warning HOT 6
- ABANDONED APPLICATION: PLEASE DO NOT USE [from django 1.9] HOT 3
- ImportError: No module named 'django.utils.importlib' HOT 2
- How to use it with Masonry?
- ModuleNotFoundError: No module named 'django.utils.importlib' HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from django-endless-pagination.