Нажмите на строку в django-tables2, чтобы перевести меня на другой стол? - PullRequest
0 голосов
/ 12 марта 2019

Я хочу щелкнуть строку или связанный элемент и перейти к другой отфильтрованной таблице.

Например, допустим, у меня есть таблица жанров:

Romance
Horror
Comedy

Я нажимаю «Романтика», а затем хочу получить список всех книг о романтике.Как я могу сделать это с django-tables2?

Как получить то, что пользователь щелкнул в моей таблице django?

Я пытался использовать table.py

class GenreTable(tables.Table):
     genre = tables.LinkColumn('books_genre_table')
     class Meta: ...

Это не работает, потому что я могупередать данные и отфильтровать их, чтобы создать таблицу в следующем представлении / html 'books_genre_table.html'

РЕДАКТИРОВАТЬ: у меня уже есть страница сведений о жанрах, которая отличается от этой страницы, которую я хочу создать,Кроме того, я хочу отфильтровать данные новым способом, который не нужно сохранять как страницу с подробным описанием с помощью «pk».Я просто хочу, чтобы все они шли по одному URL.

1 Ответ

1 голос
/ 12 марта 2019

Допустим, у вас есть genre URL-адрес, подобный этому:

path('some_path/<int:pk>/', genre_book_view, name='books_genre_table')

и у меня такой вид (здесь я буду использовать обратное отношение для выборки книг из жанра):

def genre_book(request, pk):
     # will be using genre here to fetch all the books
     genre = Genre.objects.get(pk=pk)
     context = {
         'books': genre.book_set.all()  # using reverse relation to get the books
     }
     return render(request, 'some_template.html', context)

Тогда вы можете связать свое мнение так:

class GenreTable(tables.Table):
     genre = tables.LinkColumn('books_genre_table', args=[A('pk')])
     class Meta:
        ...
...