использование self и request вместе

пытаюсь настроить пагинацию, но почему-то не получается решил объединить две функции, но выходит ошибка missing 1 required positional argument: 'self' помогите правильно оформить функцию, строго не судите, я еще новичок views.py

from django.views.generic import ListView

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

from django.shortcuts import render, get_object_or_404

from products.models import Category, Product

class ProductList(ListView):
    model = Product
    template_name = 'products/list.html'
    paginate_by = 2

def product_list(request, self, category_slug=None, **kwargs):
    category = None
    categories = Category.objects.all()
    products = Product.objects.filter(available=True)
    if category_slug:
        category = get_object_or_404(Category, slug=category_slug)
        products = products.filter(category=category)

        context = super(ProductList, self).get_context_data(**kwargs) 
        productsCatalog = Product.objects.all()
        paginator = Paginator(productsCatalog, self.paginate_by)

        page = self.request.GET.get('page')

        try:
            prods = paginator.page(page)
        except PageNotAnInteger:
            prods = paginator.page(1)
        except EmptyPage:
            prods = paginator.page(paginator.num_pages)

        context['prodsCatalog'] = prods
    return render(request,
                  'products/list.html',
                  {'category': category,
                   'categories': categories,
                   'products': products}, context)

urls.py

urlpatterns = [
    url(r'^$', views.product_list, name='product_list'),
    url(r'^(?P<category_slug>[-\w]+)/$',
        views.product_list,
        name='product_list_by_category'),
    url(r'^(?P<id>\d+)/(?P<slug>[-\w]+)/$',
        views.product_detail,
        name='product_detail'),
]

Ответы (0 шт):