Python Django_tables2 ValueError:应为表或查询集,而不是str
我正在使用Python Django_tables2 ValueError:应为表或查询集,而不是str,python,django,django-tables2,Python,Django,Django Tables2,我正在使用{%render\u table%}标记在模板中呈现django\u tables 2表,但我得到了错误: localserver错误: 内部服务器错误:/keymanager 回溯(最近一次呼叫最后一次): 文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\env\lib\site packages\django
{%render\u table%}
标记在模板中呈现django\u tables 2
表,但我得到了错误:
localserver错误:
内部服务器错误:/keymanager
回溯(最近一次呼叫最后一次):
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\env\lib\site packages\django\core\handlers\exception.py”,第34行,在内部
响应=获取响应(请求)
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\u env\lib\site packages\django\core\handlers\base.py”,第115行,在get\u响应中
response=self.process\u异常\u由\u中间件(e,请求)
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\u env\lib\site packages\django\core\handlers\base.py”,第113行,在\u get\u response中
响应=包装的回调(请求,*回调参数,**回调参数)
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\IENG\u MIS\views.py”,第29行,在issuekey中
返回呈现(请求'keymanagement.html',{'form':form})
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\env\lib\site packages\django\shortcuts.py”,第36行,在render中
content=loader.render_to_string(模板名称、上下文、请求、using=using)
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\u env\lib\site packages\django\template\loader.py”,第62行,呈现为字符串
返回template.render(上下文、请求)
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\env\lib\site packages\django\template\backends\django.py”,第61行,呈现
返回self.template.render(上下文)
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\env\lib\site packages\django\template\base.py”,第171行,在render中
返回self.\u呈现(上下文)
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\env\lib\site packages\django\template\base.py”,第163行,在渲染中
返回self.nodelist.render(上下文)
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\env\lib\site packages\django\template\base.py”,第937行,在render中
位=节点。带注释的渲染(上下文)
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\env\lib\site packages\django\template\base.py”,第904行,带注释的渲染
返回self.render(上下文)
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\mis\u env\lib\site packages\django\u tables2\templatetags\django\u tables2.py”,第144行,在render中
raise VALUERROR(“应为表或查询集,而不是{}”。格式(klass))
ValueError:应为表或查询集,而不是str
[2019年10月16日22:42:32]“GET/keymanager HTTP/1.1”500 117360
models.py
K
tables.py
import django_tables2 as tables
from .models import issuekeys
class issued_table(tables.Table):
model=issuekeys
template_name = "django_tables2/bootstrap.html"
fields=('keynumber', 'workorder','contrator','assigned_name','assigned_contact','date_to_return',)
views.py
from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect
from django_tables2 import RequestConfig
from .forms import issuekeyform
from .tables import issued_table
from .models import issuekeys
@login_required()
def landing_page(request):
return render(request, 'landing_page.html')
def login(request):
return render(request, 'login.html')
def issuekey(request):
if request.method=='POST':
global form
form= issuekeyform(request.POST)
if form.is_valid():
post = form.save(commit=False)
post.save()
return HttpResponseRedirect('/keymanager')
else:
form = issuekeyform()
return render(request, 'keymanagement.html', {'form': form})
def issuetable():
table = issued_table(issuekeys.objects.all())
RequestConfig(request, paginate={'per_page': 10}).configure(table)
return render(request, "keymanagement.html", {'table': table})
kemanagement.html
{% load widget_tweaks %}
{% load bootstrap4 %}
{% bootstrap_css %}
{% bootstrap_javascript jquery='full' %}
{% load i18n %}
{% load render_table from django_tables2 %}
<div class="col-4">
<h4 class="text-primary" style="text-align:left; font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif" >Register Key:</h4>
<div class="row" style="margin-top: 1em; margin-left: 1mm">
{% render_table table %}
</div>
</div>
错误stacktrace在中间某处显示:
。。。
文件“C:\Users\Rigelsolutions\source\repos\management\u information\u system\management\u information\u system\IENG\u MIS\views.py”,第29行,在issuekey中
返回呈现(请求'keymanagement.html',{'form':form})
...
请注意它是如何引用函数issuekey
,但在视图中仅显示函数issuetable
因此,您要么显示了不同的视图函数,要么意外地显示了不同的错误stacktrace,因为这两个函数不属于一起
您能否更新视图或错误堆栈跟踪,以便我们能进一步帮助您?您能否包含完整的错误堆栈跟踪?我省略了处理表单的函数。请查收
django_tables2 version: 2.1.1
django version: 2.2.6