Я хочу добавить ссылку на мой просмотр списка, используя linkify в Столбцах Справочника по API . Я использую Django 2 с Django_tables2 v 2.0.0b3
У меня есть URL с двумя переменными контекста name
, который передается из ListView и поля slug species
:
URL.py
app_name = 'main'
urlpatterns = [
#The list view
path('genus/<slug:name>/species/', views.SpeciesListView.as_view(), name='species_list'),
# The Detail view
path('genus/<name>/species/<slug:species>', views.SpeciesDetailView.as_view(), name='species'),
]
DetailView в настоящее время доступен, если я вручную наберу URL.
Я хочу использовать опцию, в которой я могу ввести кортеж с помощью (viewname, args / kwargs).
Для файла tables.py я пробовал:
class SpeciesTable(tables.Table):
species =tables.Column(linkify=('main:species', {'name': name,'slug':species}))
Это дало NameError: name 'species' is not defined
.
species =tables.Column(linkify=('main:species', {'name': kwargs['name'],'slug':kwargs['species']}))
Это дало NameError: name 'kwargs' is not defined
.
Я также попытался изменить следующие переменные на строки:
species =tables.Column(linkify=('main:species', {'name': 'name','slug':'species'}))
species =tables.Column(linkify=('main:species', {'name': 'name','slug':'object.species'}))
Эти попытки дали NoReverseMatch Reverse for 'species' with keyword arguments '{'name': 'name', 'slug': 'species'}' not found. 1 pattern(s) tried: ['genus\\/(?P<name>[^/]+)\\/species\\/(?P<species>[-a-zA-Z0-9_]+)$']
Если отформатировать его так, как указано ниже, SyntaxError
:
species =tables.Column(kwargs={'main:species','name': name,'slug':species})
species =tables.Column(args={'main:species','name': name,'slug':species})
species =tables.Column(kwargs:{'main:species','name': name,'slug':species})
species =tables.Column(args:{'main:species','name': name,'slug':species})
Как добавить ссылку, похожую на {% url "main:species" name=name species =object.species %}
? В настоящее время в документации нет примеров для этого.