Я использую django_tables2 для отображения некоторых данных - однако. Я бы хотел, чтобы нумерация страниц производилась буквами алфавита. Т.е. страница 1 - это все записи, начинающиеся с буквы A, страница 2 - все записи, начинающиеся с буквы B. et c.
Я думаю, что это было бы относительно просто сделать, но я не могу найти ни одного примера этого! Это не возможно? Возможно, я использовал неправильные условия поиска.
В настоящее время мои входные данные довольно просты - хотя просто указание мне на некоторые материалы было бы так же полезно, как и указание, как изменить код.
tables.py:
import django_tables2 as tables
from .models import Person, Languages
from django_tables2.utils import A # alias for Accessor
class LanguagesTable(tables.Table):
name = tables.LinkColumn("language_detail", args=[A("glottocode")])
class Meta:
model = Languages
template_name = "django_tables2/bootstrap.html"
fields = ("name", )
urls.py
from django.urls import path
from django.conf.urls import url
from . import views
urlpatterns = [
#url(r'^$', views.home, name='home'),
path('', views.home, name='home'),
path('about/', views.about, name='about'),
path('languages/', views.LanguagesTable.as_view(), name='languages'),
#path('languages/', views.LanguagesTable, name='languages'),
path('languages/<str:pk>/', views.language_detail, name='language_detail'),
path('phylogeny/', views.phylogeny, name='phylogeny'),
#path("people/", views.PersonListView.as_view()),
]
models.py
class Languages(models.Model):
id = models.TextField(db_column='ID', blank=True, null=False, primary_key=True) # Field name made lowercase.
name = models.TextField(db_column='Name', blank=True, null=True) # Field name made lowercase.
glottocode = models.TextField(db_column='Glottocode', blank=True, null=True) # Field name made lowercase.
glottolog_name = models.TextField(db_column='Glottolog_Name', blank=True, null=True) # Field name made lowercase.
iso639p3code = models.TextField(db_column='ISO639P3code', blank=True, null=True) # Field name made lowercase.
macroarea = models.TextField(db_column='Macroarea', blank=True, null=True) # Field name made lowercase.
latitude = models.FloatField(db_column='Latitude', blank=True, null=True) # Field name made lowercase.
longitude = models.FloatField(db_column='Longitude', blank=True, null=True) # Field name made lowercase.
family = models.TextField(db_column='Family', blank=True, null=True) # Field name made lowercase.
label = models.TextField(db_column='Label', blank=True, null=True) # Field name made lowercase.
project = models.TextField(db_column='Project', blank=True, null=True) # Field name made lowercase.
projectfile = models.TextField(db_column='ProjectFile', blank=True, null=True) # Field name made lowercase.
projectname = models.IntegerField(db_column='ProjectName', blank=True, null=True) # Field name made lowercase.
entrydate = models.TextField(db_column='EntryDate', blank=True, null=True) # Field name made lowercase.
comment = models.TextField(db_column='Comment', blank=True, null=True) # Field name made lowercase.
link = models.TextField(db_column='Link', blank=True, null=True) # Field name made lowercase.
class Meta:
managed = False
db_table = 'languages'