Я отображаю django_tables2
таблицу в шаблоне, используя тег {% render_table table %}
, но получаю ошибку:
localserver error:
Internal Server Error: /keymanager
Traceback (most recent call last):
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django\core\handlers\base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django\core\handlers\base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\IENG_MIS\views.py", line 29, in issuekey
return render(request, 'keymanagement.html', {'form': form})
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django\shortcuts.py", line 36, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django\template\loader.py", line 62, in render_to_string
return template.render(context, request)
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django\template\backends\django.py", line 61, in render
return self.template.render(context)
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django\template\base.py", line 171, in render
return self._render(context)
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django\template\base.py", line 163, in _render
return self.nodelist.render(context)
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django\template\base.py", line 937, in render
bit = node.render_annotated(context)
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django\template\base.py", line 904, in render_annotated
return self.render(context)
File "C:\Users\Rigelsolutions\source\repos\management_information_system\management_information_system\mis_env\lib\site-packages\django_tables2\templatetags\django_tables2.py", line 144, in render
raise ValueError("Expected table or queryset, not {}".format(klass))
ValueError: Expected table or queryset, not str
[16/Oct/2019 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>
Я использую:
django_tables2 version: 2.1.1
django version: 2.2.6