Hi, Yes, as far as I can tell it does looks like a middleware. When I get home I'll post my middleware settings.
lzantal On Jul 30, 2010, at 16:46, RT <[email protected]> wrote: > Taking off &{{ request.META.QUERY_STRING }} makes it so that it just > appends ?itemperpage=15 (or whatever), but then like you said it loses > the search terms. Makes me think that somehow the middleware is not > doing what its supposed too? > > -RT > > On Jul 30, 1:47 pm, lzantal <[email protected]> wrote: >> Hi, >> >> Very weird. >> I have this in my href: ? >> itemperpage=15&{{ request.META.QUERY_STRING }} >> And this in my context processors: >> """ >> TEMPLATE_CONTEXT_PROCESSORS = >> ("satchmo_store.shop.context_processors.settings", >> "django.core.context_processors.auth", >> "django.core.context_processors.debug", >> "django.core.context_processors.i18n", >> "django.core.context_processors.media", >> >> "django.core.context_processors.request" >> ) >> """ >> Try removing the &{{ request.META.QUERY_STRING }} to make sure its >> working. >> The only reason it needs to be there is for the search page. It >> appends the search query to the url. >> >> lzantal >> >> On Jul 30, 10:33 am, RT <[email protected]> wrote: >> >>> I changed the href to look like >>> this:http://example.com/search/?itemperpage=15&{{ >>> request.META.QUERY_STRING }}" and it still produces the same result. >>> Now when I click the link it looks like >>> this:http://example.com/search/?itemperpage=30&itemperpage=15&keywords=chai >>> (clicked 15 first, then 30) >> >>> -rt >> >>> On Jul 30, 9:24 am, RT <[email protected]> wrote: >> >>>> Thanks for the reply. My context processors looks like this: >> >>>> TEMPLATE_CONTEXT_PROCESSORS = >>>> ('satchmo_store.shop.context_processors.settings', >>>> 'django.core.context_processors.auth', >> >>>> #'satchmo_ext.recentlist.context_processors.recent_products', >> >>>> 'django.core.context_processors.request', >>>> ) >> >>>> Here is the relative code from the template: >> >>>> <div class="item-per-page"> >>>> Items found: {{ products|length }} >>>> <strong>Show: </strong> >>>> <a href="?itemperpage=15&{{ request.META.QUERY_STRING }}"> 15 >>>> </a> >>>> ›› >>>> <a href="?itemperpage=30&{{ request.META.QUERY_STRING }}"> 30 >>>> </a> >>>> ›› >>>> <a href="?itemperpage=60&{{ request.META.QUERY_STRING }}"> 60 >>>> </a> >>>> items per page. >>>> <br class="clear-both" /> >>>> </div> >>>> {% autopaginate products request.session.itemperpage %} >> >>>> Here's what the middleware looks like: >> >>>> class PageMiddleware(object): >>>> def process_request(self, request): >>>> if not request.REQUEST.get('itemperpage', False): >>>> if not request.session.get('itemperpage', False): >>>> request.session['itemperpage'] = 15 >>>> else: >>>> try: >>>> request.session['itemperpage'] = >>>> int(request.REQUEST['itemperpage']) >>>> except (KeyError, ValueError, TypeError): >>>> request.session['itemperpage'] = 15 >>>> return None >> >>>> I had to remove a line break from what you had posted above right >>>> after the try: >>>> its in a file called pagemiddleware.py within the pagination directory >>>> and I link to it in my settings like this: >> >>>> 'pagination.pagemiddleware.PageMiddleware', >> >>>> Thanks >>>> -RT >> >>>> On Jul 29, 1:16 pm, lzantal <[email protected]> wrote: >> >>>>> Hi, >> >>>>> That's weird. My template loads the same templatetags. >>>>> Are you using this in your link(case sensitive): >>>>> {{ request.META.QUERY_STRING }} >>>>> What is your TEMPLATE_CONTEXT_PROCESSORS has in it? >> >>>>> lzantal >> >>>>> On Jul 29, 12:56 pm, RT <[email protected]> wrote: >> >>>>>> It does it with both Django's development server and our production >>>>>> server which is CentOS with apache and mod_wsgi. I checked it in >>>>>> firefox and chrome and both do the same thing. I'm wondering, does >>>>>> {{ request.META.QUERY_STRING }} require the loading of more tags? >> >>>>>> Right now search.html loads: >>>>>> {% load i18n %} >>>>>> {% load thumbnail %} >>>>>> {% load satchmo_currency satchmo_discounts %} >>>>>> {% load pagination_tags %} >> >>>>>> Thanks for the help Izantal. I have truly appreciated your many >>>>>> responses to my questions. >> >>>>>> -RT >> >>>>>> On Jul 29, 12:19 pm, lzantal <[email protected]> wrote: >> >>>>>>> Hi, >> >>>>>>> Hmm, I don't get that on my end... >>>>>>> Just tested it in prod server and on dev server. >>>>>>> Do you have "django.core.context_processors.request" in >>>>>>> TEMPLATE_CONTEXT_PROCESSORS ? >>>>>>> Just a thought. Could you try it with the django runserver ? >> >>>>>>> Thanks >> >>>>>>> lzantal >> >>>>>>> On Jul 29, 11:21 am, RT <[email protected]> wrote: >> >>>>>>>> Hey Izantal I noticed that if I switch multiple times something >>>>>>>> breaks. I.e. if I click 30 then 15 then 60 the url gets constructed >>>>>>>> like this ?itemperpage=15&itemperpage=60&itemperpage=30 and it always >>>>>>>> displays the number of items for the first one I clicked (30 in this >>>>>>>> case). How can I get around this? >> >>>>>>>> On Jul 29, 9:26 am, lzantal <[email protected]> wrote: >> >>>>>>>>> no problem :) >> >>>>>>>>> lzantal >> >>>>>>>>> On Jul 29, 9:20 am, RT <[email protected]> wrote: >> >>>>>>>>>> thanks izantal! >> >>>>>>>>>> -rt >> >>>>>>>>>> On Jul 27, 6:32 pm, lzantal <[email protected]> wrote: >> >>>>>>>>>>> Hi, >> >>>>>>>>>>> Here is the code to let the user choose the amount of products >>>>>>>>>>> displayed per page. >>>>>>>>>>> I created a pagemiddleware.py module and added it to the >>>>>>>>>>> MIDDLEWARE_CLASSES in settings.py >>>>>>>>>>> I have this very simple class in pagemiddleware.py >>>>>>>>>>> """ >>>>>>>>>>> class PageMiddleware(object): >>>>>>>>>>> def process_request(self, request): >>>>>>>>>>> if not request.REQUEST.get('itemperpage', False): >>>>>>>>>>> if not request.session.get('itemperpage', False): >>>>>>>>>>> request.session['itemperpage'] = 15 >>>>>>>>>>> else: >>>>>>>>>>> try: >>>>>>>>>>> request.session['itemperpage'] = >>>>>>>>>>> int(request.REQUEST['itemperpage']) >>>>>>>>>>> except (KeyError, ValueError, TypeError): >>>>>>>>>>> request.session['itemperpage'] = 15 >>>>>>>>>>> return None >>>>>>>>>>> """ >> >>>>>>>>>>> After this change the search.html template >>>>>>>>>>> """ >>>>>>>>>>> {% with results.products as products %} >>>>>>>>>>> <div class="item-per-page"> >>>>>>>>>>> Items found: {{ products|length }} >>>>>>>>>>> <strong>Show: </strong> >>>>>>>>>>> <a href="?itemperpage=15&{{ request.META.QUERY_STRING }}"> >>>>>>>>>>> 15 </a> >>>>>>>>>>> ›› >>>>>>>>>>> <a href="?itemperpage=30&{{ request.META.QUERY_STRING }}"> >>>>>>>>>>> 30 </a> >>>>>>>>>>> ›› >>>>>>>>>>> <a href="?itemperpage=60&{{ request.META.QUERY_STRING }}"> >>>>>>>>>>> 60 </a> >>>>>>>>>>> items per page. >>>>>>>>>>> <br class="clear-both" /> >>>>>>>>>>> </div> >>>>>>>>>>> {% autopaginate products request.session.itemperpage %} >>>>>>>>>>> <ul> >>>>>>>>>>> {% for product in products %} >>>>>>>>>>> / more code here / >>>>>>>>>>> {% endfor %} >>>>>>>>>>> </ul> >>>>>>>>>>> <br /> >>>>>>>>>>> {% paginate %} >>>>>>>>>>> {% endwith %} >>>>>>>>>>> """ >> >>>>>>>>>>> I put the middleware into the pagination app. >> >>>>>>>>>>> lzantal >> >>>>>>>>>>> On Jul 27, 1:12 pm, RT <[email protected]> wrote: >> >>>>>>>>>>>> That sounds really useful, I'll look forward to it! >> >>>>>>>>>>>> On Jul 27, 12:38 pm, lzantal <[email protected]> wrote: >> >>>>>>>>>>>>> Hi, >> >>>>>>>>>>>>> Glad to hear that.:) >>>>>>>>>>>>> I'll be home tonight and will add the code that let the user set >>>>>>>>>>>>> quantity/page, >>>>>>>>>>>>> It also displays the Items Found. >> >>>>>>>>>>>>> lzantal >> >>>>>>>>>>>>> On Jul 27, 9:48 am, RT <[email protected]> wrote: >> >>>>>>>>>>>>>> Thanks Izantal, that works great! >> >>>>>>>>>>>>>> -RT >> >>>>>>>>>>>>>> On Jul 26, 9:48 pm, lzantal <[email protected]> wrote: >> >>>>>>>>>>>>>>> Hi, >> >>>>>>>>>>>>>>> On Jul 26, 10:01 am, RT <[email protected]> wrote: >> >>>>>>>>>>>>>>>> I know this has been discussed before but it seems like it has >>>>>>>>>>>>>>>> been >>>>>>>>>>>>>>>> awhile. What is the status of pagination (say of search) in >>>>>>>>>>>>>>>> Satchmo. >>>>>>>>>>>>>>>> Is it easy functionality to attain? >> >>>>>>>>>>>>>>> Yes it is. I'll dig up the code tomorrow to let the user select >>>>>>>>>>>>>>> how >>>>>>>>>>>>>>> many product they want to display on the page Eg: Show 15, 30, >>>>>>>>>>>>>>> 60. >>>>>>>>>>>>>>> I am using the pagination app >>>>>>>>>>>>>>> http://code.google.com/p/django-pagination/ >>>>>>>>>>>>>>> . >>>>>>>>>>>>>>> Once you install it here is the pagination specific code from >>>>>>>>>>>>>>> my shop/ >>>>>>>>>>>>>>> search.html template >>>>>>>>>>>>>>> """ >>>>>>>>>>>>>>> {% load pagination_tags %} >>>>>>>>>>>>>>> {% with results.products as products %} >>>>>>>>>>>>>>> {% autopaginate products %} >>>>>>>>>>>>>>> <ul> >>>>>>>>>>>>>>> {% for product in products %} >> >> ... >> >> read more ยป > > -- > You received this message because you are subscribed to the Google Groups > "Satchmo users" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/satchmo-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Satchmo users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/satchmo-users?hl=en.
