使用django-tables2时出错 - 预期的表或查询集,而不是'str'

Rav*_*hta 10 python-2.7 django-tables2 django-1.7

我正在尝试使用django-tables2为我的应用程序创建一些表并遇到一些困难.我使用的是Python 2.7和Django 1.7.我正在按照教程,遇到了问题.

我到了需要创建Table类进行自定义的地步.但是,每当我这样做,我会收到以下错误:

预期的表或查询集,而不是'str'.

在做了一些 研究之后,看起来我正在使用旧版本的django-tables2.但是,我昨天刚安装它pip install django-tables2并在半小时前更新了它.知道如何让django-tables2正常工作吗?

编辑 - 问题解决了.我用的是{% render_table people %}代替{% render_table table %}

Ber*_*aca 7

我也遇到了这个问题.您应该做的第一件事是检查您的更新.
sudo pip install django-tables2 --upgrade
sudo pip install django-tables2-reports --upgrade
升级也不起作用.
如果您已经升级了这些版本.您应该检查您的实施.如果您使用的是基于类的视图,并且您非常确定实现了视图,模板,表.你可能必须忘记网址.
所以网址应该是这样的.

/* I give the example with respect to other post*/
urls.py  /*Same dic with table.py,models..etc*/
from .views import SomeTableView   
urlpatterns = patterns('',
                   url(r"^$", SomeTableView.as_view(), name="index"),


                   )
Run Code Online (Sandbox Code Playgroud)

如果它不是您网站的索引,您可能需要更改r"^ $"和name ="index"


rud*_*dra 5

好吧,我认为您的问题不是django-tables2的版本。在这里,我认为当您将变量从视图传递到模板时,您是在传递字符串而不是queryset / table类对象。对于工作示例:

表类:

class SomeTable(tables.Table):

    class Meta:
        model= SomeModel
        attrs = {"class": "paleblue"}
Run Code Online (Sandbox Code Playgroud)

查看类别:

class SomeTableView(SingleTableView):
    model = SomeModel
    template_name = 'test.html'
    table_class = SomeTable
Run Code Online (Sandbox Code Playgroud)

模板:

 {% load render_table from django_tables2 %}
 {% render_table table %}   <!-- Here I am passing table class -->
Run Code Online (Sandbox Code Playgroud)

或者,您可以直接发送查询集以呈现表,例如:

class SomeView(TemplateView):
     def get(self, request, *args, **kwargs):
         data = SomeModel.objects.all()
         context = self.get_context_data(**kwargs)
         context['table'] = data
         return self.render_to_response(context)
Run Code Online (Sandbox Code Playgroud)

并像这样渲染它:

{% load render_table from django_tables2 %}
{% render_table table %} <!-- Here I am passing queryset -->
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的答案。 (2认同)

Sha*_*512 5

有同样的问题。我忘记添加SingleTableMixin视图类的参数

  • 与 [Sharpless512](/sf/users/94252371/) 所说的类似,但就我而言,我忘记将视图从 `ListView` 更新为 `SingleTableView` (4认同)
  • 这真的很有帮助:) (2认同)