我正在尝试使用最常见/标准/推荐的Django 1.6方法创建具有分页,排序和过滤的表视图.这似乎是基于通用类的视图和django-tables2.我找到了至少两个不同的如何添加过滤的例子,一个用django-filters和crispy-forms,另一个用django_filters,但都没有包含完整的工作示例.当我遵循任何一种方法时,我都会陷入困境中.使用Nicolas Kuttler的脆弱方法,我有:
models.py
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)
tables.py
import django_tables2 as dt2
from .models import Author
class AuthorTable(dt2.Table):
class Meta:
model = Author
Run Code Online (Sandbox Code Playgroud)
如果我理解正确的话,PagedFilteredTableView是一个泛型类,然后我继承AuthorView,而不是另一个例子,其中FilteredSingleTableView,我认为应该被理解为类似,如果Author是表,AuthorFilteredSingleTableView.
views.py
from .tables import AuthorTable
from .models import Author
from django_tables2 import SingleTableView
class PagedFilteredTableView(SingleTableView):
"""
Generic class from http://kuttler.eu/post/using-django-tables2-filters-crispy-forms-together/
which should probably be in a utility file
"""
filter_class = None
formhelper_class = None
context_filter_name = 'filter'
def get_queryset(self, **kwargs):
qs = super(PagedFilteredTableView, self).get_queryset()
self.filter …Run Code Online (Sandbox Code Playgroud) django django-filter django-class-based-views django-tables2