I am using Django-table2 for SingleTableMixin and I am getting this error which I am not able to come around. Error says I need to present data in query to be able to make it work. Following is the code and guidance is requested.
class ProductListView(SingleTableMixin, generic.TemplateView):
template_name = 'dashboard/catalogue/product_list.html'
form_class = ProductSearchForm
productclass_form_class = ProductClassSelectForm
table_class = ProductTable
context_table_name = 'products'
def get_context_data(self,**kwargs):
ctx = super(ProductListView, self).get_context_data(**kwargs)
ctx['form'] = self.form
ctx['productclass_form'] = self.productclass_form_class()
return ctx
def get_description(self, form):
if form.is_valid() and any(form.cleaned_data.values()):
return _('Product search results')
return _('Products')
def get_table(self, **kwargs):
if 'recently_edited' in self.request.GET:
kwargs.update(dict(orderable=False))
table = super(ProductListView, self).get_table(**kwargs)
table.caption = self.get_description(self.form)
return table
def get_table_pagination(self):
return dict(per_page=20)
def filter_queryset(self, queryset):
return filter_products(queryset, self.request.user)
def get_queryset(self):
queryset = Product.browsable.base_queryset()
queryset = self.filter_queryset(queryset)
queryset = self.apply_search(queryset)
return queryset
Django Version: 1.8.16
Python Version: 2.7.12
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.flatpages',
'django.contrib.messages',
'django.contrib.staticfiles',
'phonenumber_field',
'haystack',
'default.templatetags',
'treebeard',
'sorl.thumbnail',
'django_tables2',
'compressor',
'widget_tweaks',
'catalogue',
'catalogue.reviews',
'customer',
'customer.alerts',
'customer.notifications',
'customer.wishlists',
'analytics',
'partner',
'offer',
'order',
'address',
'basket',
'voucher',
'wishlist',
'shipping',
'promotions',
'payment',
'dashboard',
'dashboard.catalogue',
'dashboard.communications',
'dashboard.orders',
'dashboard.offers',
'dashboard.pages',
'dashboard.partners',
'dashboard.promotions',
'dashboard.ranges',
'dashboard.reports',
'dashboard.reviews',
'dashboard.shipping',
'dashboard.users',
'dashboard.vouchers',
'purl')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'basket.middleware.BasketMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware')
Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Python27\lib\site-packages\django\contrib\auth\decorators.py" in _wrapped_view
22. return view_func(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\views\generic\base.py" in view
71. return self.dispatch(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\views\generic\base.py" in dispatch
89. return handler(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\views\generic\base.py" in get
158. context = self.get_context_data(**kwargs)
File "C:\Users\AliKhan\supermarket\market\dashboard\catalogue\views.py" in get_context_data
77. ctx = super(ProductListView, self).get_context_data(**kwargs)
File "C:\Python27\lib\site-packages\django_tables2\views.py" in get_context_data
107. table = self.get_table(**self.get_table_kwargs())
File "C:\Users\AliKhan\supermarket\market\dashboard\catalogue\views.py" in get_table
91. table = super(ProductListView, self).get_table(**kwargs)
File "C:\Python27\lib\site-packages\django_tables2\views.py" in get_table
82. table = table_class(self.get_table_data(), **kwargs)
File "C:\Python27\lib\site-packages\django_tables2\tables.py" in __init__
348. self.data = self.TableDataClass(data=data, table=self)
File "C:\Python27\lib\site-packages\django_tables2\tables.py" in __init__
45. ' list(data) -- {} has neither'.format(type(data).__name__)
Exception Type: ValueError at /dashboard/catalogue/
Exception Value: data must be QuerySet-like (have count() and order_by()) or support list(data) -- NoneType has neither