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 %}
我也遇到了这个问题.您应该做的第一件事是检查您的更新.
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"
好吧,我认为您的问题不是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)
有同样的问题。我忘记添加SingleTableMixin视图类的参数
| 归档时间: |
|
| 查看次数: |
3983 次 |
| 最近记录: |