我开始学习django,并使用mongoengine将其用于构建和连接到我们的mongoDB。
我正在跟踪this tutorial以使用django-tables2,但是由于出现错误Expected table or queryset, not QuerySet
我什至无法启动它。
这是我正在使用的课程:
class Companies(Document):
url = StringField(required=True, unique=True)
name = StringField(required=True)
founded = IntField()
headquarters = EmbeddedDocumentField(HQ)
description = StringField()
在我看来,我只是在做
def companies(request):
return render(request, 'toolbox/companies.html', {'companies': Companies.objects.all()})
我看到mongoengine的输出是QuerySet类型。如何将其转换为可以在Django表上输入的某种类型? 谢谢您的帮助!
答案 0 :(得分:0)
django-tables2期望的数据格式是QuerySet,字典列表或类似行为。您可以创建一个继承自TableData
的类,将其传递给普通django_tables2.Table
并将其放在您的上下文中,而不是Companies.objects.all()
。
它看起来像这样:
import django_tables2 as tables
from django_tables2.data import TableQuerysetData
class TableDocumentData(TableQuerysetData):
# not sure what to override here, since I do not know the mongoengine API at all
def companies(request):
table = CompanyTable(data=TableDocumentData(Companies.objects.all()))
return render(request, 'toolbox/companies.html', {'companies': table})