单击django-tables2中的行将我带到另一个表?

时间:2019-03-12 03:40:42

标签: django django-views django-tables2

我基本上想单击行或链接的元素,然后带我到另一个过滤的表。

例如,假设我有一个类型表:

Romance
Horror
Comedy

我单击“浪漫”,然后想要所有浪漫书籍的列表。我如何用django-tables2做到这一点?

如何在django表中获得用户单击的内容?

我尝试使用 table.py

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

这不起作用,因为我无法传递数据并对其进行过滤以在下一个view / html'books_genre_table.html'中创建表格

编辑:我已经有一个流派的详细信息页面,该页面与我要创建的页面不同。此外,我想以一种不需要将其另存为带有“ pk”的详细信息页面的新方式来过滤数据。我只想让所有这些都进入一个网址。

1 个答案:

答案 0 :(得分:1)

假设您有一个genre网址,如下所示:

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

并具有这样的视图(在这里,我将使用reverse relation从类型中获取图书):

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:
        ...