Django tables2 разбить на страницы с фильтром и добавить пользовательский столбец - PullRequest
0 голосов
/ 22 апреля 2019

Я реализовал таблицы Django2 с разбиением на страницы, 2000 страниц по 25 записей на страницу. Есть 2 вещи, которые я пытаюсь сделать:

  1. Добавить фильтр
  2. Добавление пользовательского столбца в таблицу

Деталь:

  1. Я установил Django-фильтры, но у меня возникли проблемы с его использованием в таблицах 2, я показываю код из документации в файле filter.py, у меня уже реализована программа начальной загрузки css, но я хочу только Фильтр по столбцам таблицы, желательно с возможностью настройки макета формы фильтра.

  2. Мне нужно добавить столбец, который содержит ссылку на функцию, простой 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 %}
...