【发布时间】:2017-11-26 17:54:11
【问题描述】:
我不知道如何解决有关排序表的问题: 表在此 url 呈现: 127.0.0.1:8000/ip_teams/
但是当我点击列名对表格进行排序时,url变成了: 127.0.0.1:8000/?sort=name 它不包括“ip_teams/”路径。
这是我的看法:
class FoundationIPTypeList(SingleTableView):
model = tracker_models.FoundationIPType
table_class = tables.FoundationIPTypeTable
这是我的桌子:
class FoundationIPTypeTable(django_tables.Table):
class Meta:
model = FoundationIPType
attrs = {'class': "table table-striped table-condensed table-hover"}
fields = ["name", "help_contact_email"]
这是我的网址:
urlpatterns = [
# url(r'^$', views.HomePageView.as_view(), name='home'), # Notice the URL has been named
url(r'^about/$', views.AboutPageView.as_view(), name='about'),
url(r'^ip_teams/$', views.FoundationIPTypeList.as_view(), name="ip_team_list"),
这是我的模板:
{% extends "base.html" %}
{% load render_table from django_tables2 %}
{% block pagecontent %}
<h1><center>Foundation IP Teams</center></h1>
<div class="container">
<div class="panel panel-primary">
{% render_table table %}
</div>
</div>
{% endblock %}
任何想法有什么问题吗?似乎无法在任何地方找到答案。我认为这个功能开箱即用。
表格标题行:
<thead>
<tr>
<th class="name orderable"><a href="?sort=name&name=unknown">Name</a></th>
<th class="help_contact_email orderable"><a href="?sort=help_contact_email&name=unknown">Help Contact Email</a></th>
</tr>
</thead>
【问题讨论】:
-
您是否尝试过使用django-tables2.readthedocs.io/en/latest/pages/filtering.html 中的表格过滤示例?尝试使用它,然后为您的项目添加您需要的任何自定义。
-
@Jieter 我从django-tables2.readthedocs.io/en/latest/pages/… 开始,然后找到了一种更通用的方法,这就是我在原始评论中列出的方法。您的评论指的是过滤,我什至无法让基本的东西工作,就像让列的手段工作一样。 django-tables2 创建的 url 不正确。
-
是的,但是您使用了我没有测试/运行的自定义代码。所以这就是为什么我建议使用非定制的东西开始。如果您还不想要过滤,请使用您链接到的示例,并相应地更新您问题中的代码。
-
@Jieter 我想从 SingleTableMixin 和 FIlterView 继承还是从 SingleTableView 继承?我对采取什么方法感到困惑。我尝试使用我给出的简单示例不使用任何自定义代码,但发生了同样的情况......在 url 中没有“ip_teams”进行排序并且过滤不再起作用。
-
首先,尝试从
SingleTableView继承。如果这导致工作网址,请尝试更改为从(SingleTableMixin, FilterView)继承
标签: django sorting django-tables2