Как исправить TypeError: initial_value должно быть str или None, а не байтами с использованием StringIO - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть сообщение об ошибке initial_value должно быть str или None, а не байты , и я не знаю, как это исправить. Я сталкиваюсь с этим после изменения на python 3.

Более того, я изменяю импорт на from io import StringIO

Вот мой код:

def render_to_pdf(template_src, context_dict):
    template = get_template(template_src)
    context = context_dict
    html  = template.render(context)
    result = StringIO()

    pdf = pisa.pisaDocument(StringIO(html.encode("utf-8")), dest=result, encoding="utf-8")

Вот Traceback:

Environment:


Request Method: GET
Request URL: http:///pdf/11479/

Django Version: 2.2.6
Python Version: 3.5.2
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'bootstrap3',
 'bootstrap_themes',
 'intranet',
 'crispy_forms',
 'fm',
 'dal',
 'dal_select2',
 'django_crontab',
 'django_tables2',
 'django_filters']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']



Traceback:


File "/var/www/vhosts/intranet.health-nutrition.gr/health_nutrition/intranet/views.py" in pdf_view
  598.                         'fpa_total':fpa_total(),

File "/var/www/vhosts/intranet.health-nutrition.gr/health_nutrition/intranet/views.py" in render_to_pdf
  542.     pdf = pisa.pisaDocument(StringIO(html.encode("utf-8")), dest=result, encoding="utf-8")

Exception Type: TypeError at /pdf/11479/
Exception Value: initial_value must be str or None, not bytes

Есть идеи, как это исправить?

...