Thanks Chris,

The empty string results from the page processor not being called as far as 
I can tell. I have a view that is basically the same as this page processor 
and it works.

Cheers,
Steve

On Wednesday, January 27, 2016 at 6:42:06 AM UTC+11, 
christia...@googlemail.com wrote:
>
> Hi Steve,
>
> I haven't looked into your problem to deeply and am far from an expert. 
> But: Are you sure the pageprocessor is not being called or is the 
> pageprocessor not returning the correct result? The error code you posted 
> says "Expected table or queryset, not 'str'.". Couldn't it be the 
> pageprocessor is return an empty string? 
>
> Chris
>
> Am Freitag, 22. Januar 2016 05:27:15 UTC+1 schrieb Steve Harwin:
>>
>> Hi,
>>
>> I am not sure if my method for displaying a table of model data isthe 
>> best way to do it, but i essentially followed the examples in the docs and 
>> on this forum... unfortunately my page processor does not seem to be 
>> working. Here is the code:
>> In models.py:
>> class GeolSitesList(Page):
>>     '''
>>     A page to list GeolSites
>>     '''
>>  
>>     class Meta:
>>         verbose_name = _("Sites List")
>>         verbose_name_plural = _("Sites Lists")
>> In tables.py:
>> from ausgeolapp.models import *
>> import django_tables2 as tables
>> from django.utils.safestring import mark_safe
>> from django.utils.html import escape
>>
>>
>> class geolSitesTable(tables.Table):
>>     class Meta:
>>         model = geolsites
>>         exclude = ("geom", )
>>         attrs = {'class': 'SitesTable'}
>>     def render_site(self, value):
>>         return mark_safe(escape(value)+'<br><img id="sitethumb" 
>> width="300" src="http://ausgeol.utas.edu.au/data/public/AusGeolSites/'+
>> escape(value)+'/'+escape(value)+'_thumb.jpg">')
>> In page_processors.py:
>> from mezzanine.pages.page_processors import processor_for
>>
>>
>> from django.db import models
>> from models import GeolSitesList
>> from django.http import HttpResponse
>> from django.template import loader
>> from ausgeolapp.models import *
>> from ausgeolapp.tables import geolSitesTable
>> import django_tables2 as tables
>>
>>
>> @processor_for(GeolSitesList)
>> def geolSites_List(request, page):
>>     sitelist = geolsites.objects.all()
>>     sitelisttable = geolSitesTable(sitelist)
>>     sitelisttable.paginate(page=request.GET.get('page', 1), per_page=25)
>>     return {"sitelisttable": sitelisttable}
>> I also tried: @processor_for("sites")
>> In geolsiteslist.html
>> {% extends "pages/page.html" %}
>>
>>
>> {% load mezzanine_tags staticfiles %}
>> {% block extra_assets %}
>>  <link rel="stylesheet" href="{%  static 'css\ausgeol-tables.css' %}" 
>> type="text/css" />
>> {% endblock %}
>> {% load django_tables2 %}
>> {% block main %}
>>
>>
>> {% render_table sitelisttable %}
>> {% endblock %}
>> I get the "Expected table or queryset, not 'str'." error because the 
>> sitelisttable 
>> is empty... the context is not being added because the page processor is 
>> not being called. After hunting for suggestions I added the following to 
>> urls.py:
>> from mezzanine.pages import page_processors
>>
>>
>> page_processors.autodiscover()
>> and also tried adding this to my url patterns but it made no difference 
>> and I would have thought it was not needed since I am adding a 
>> GeolSitesList page via mezzanine admin (the page is called 'sites'):
>> url("^sites/$", "mezzanine.pages.views.page", {"slug": "sites"},  name=
>> "GeolSitesList"),
>>
>> and I tried this as well
>> url("^sites/$", "mezzanine.pages.views.page", {"slug": "sites"},  name=
>> "sites"),
>>
>> I am not sure what else to try... please can someone point me to my 
>> mistake. I am using Python 3.3, Postgresql 9.4 (PostGIS 2), Django 1.8.6, 
>> Mezzanine 4.0.1, and the latest django-tables2.
>> Thanks,
>> Steve
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to