Я реализовал таблицы Django2 с разбиением на страницы, 2000 страниц по 25 записей на страницу.
Есть 2 вещи, которые я пытаюсь сделать:
- Добавить фильтр
- Добавление пользовательского столбца в таблицу
Деталь:
Я установил Django-фильтры, но у меня возникли проблемы с его использованием в таблицах 2, я показываю код из документации в файле filter.py, у меня уже реализована программа начальной загрузки css, но я хочу только Фильтр по столбцам таблицы, желательно с возможностью настройки макета формы фильтра.
Мне нужно добавить столбец, который содержит ссылку на функцию, простой URL - подробности здесь не важны: <td><a href="{% url 'depot:change_container' operation='add' pk=container.container_id fk=contents.sample_id %}" class="badge badge-primary" role="button">add</a></td>
. Так как я могу добавить дополнительный столбец в таблицу?
Мой код в резюме к соответствующим частям
# tables.py
import django_tables2 as tables
from .models import Sample
class SampleTable(tables.Table):
class Meta:
model = Sample
# views.py
def detailcontainer(request, container_id):
unassigned_samples2 = Sample.objects.all()
table = SampleTable(unassigned_samples2)
RequestConfig(request, paginate={'per_page': 25}).configure(table)
return render(request, 'container/detailcontainer.html',
{'table':table})
# filters.py
from django_filters.views import FilterView
from django_tables2.views import SingleTableMixin
class FilterSample(SingleTableMixin, FilterView):
table_class = SampleTable
model = Sample
filterset_class = SampleFilter
# template # this is what the docs say, but I can't get the 'if filter' section to work
{% load render_table from django_tables2 %}
{% render_table table %}
{% if filter %}
<form action="" method="get" class="form form-inline">
{% bootstrap_form filter.form layout='inline' %}
{% bootstrap_button 'filter' %}
</form>
{% endif %}