forms: load csv as text in py3

This commit is contained in:
Frédéric Péters 2020-04-12 10:26:04 +02:00
parent dfa144bea8
commit 09089dec2d
1 changed files with 4 additions and 0 deletions

View File

@ -2,10 +2,12 @@ import csv
from django import forms from django import forms
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import force_text
from django.utils.text import slugify from django.utils.text import slugify
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.core import validators from django.core import validators
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.utils import six
from .models import Announce, Category, Broadcast, channel_choices from .models import Announce, Category, Broadcast, channel_choices
from . import widgets from . import widgets
@ -67,6 +69,8 @@ class SubscriptionsImportForm(forms.Form):
def clean_subscribers(self, *args, **kwargs): def clean_subscribers(self, *args, **kwargs):
subscribers = [] subscribers = []
if six.PY3:
self.cleaned_data['subscribers'] = force_text(self.cleaned_data['subscribers'].read()).splitlines()
reader = csv.reader(self.cleaned_data['subscribers']) reader = csv.reader(self.cleaned_data['subscribers'])
for idx, row in enumerate(reader, 1): for idx, row in enumerate(reader, 1):
if not row or not row[0]: if not row or not row[0]: