Форум сайта python.su
сорри если путаю термины:
джанго получает через post с веб формы с textarea список имен, разделенных двойным пробелом
иногда туда встревают символы в ? урл кодировке ? ( типа dagon
 )
как сделать так чтобы при выполнении :
names_list=request.POST.split(“ ”)
в именах исчезли крякозяблы? ( типа вернулось просто
["dagon"], а не ["dagon
"]
Отредактировано despair4 (Сен. 30, 2014 19:50:49)
Офлайн
names_list=request.POST.split(“ ”)
<textarea name="mytext" ></textarea>
names_list=request.POST["mytext"]
Офлайн
а ну да я похоже непонятно написал вопрос
есть функция типа:
names_list=request.POST["names"].split(" ") t=[] for name in names_list: d={} d["name"]=name id1=0 pilots_list=pilot.objects.filter(name__iexact=name) if len(pilots_list)==1: id1=pilots_list[0].id else: pilots_list=character_id.get_id_by_pilot_name(name) for i1 in pilots_list: if i1["name"].upper()== name.upper(): id1=int(i1["characterID"]) pilot(name=name,id=id1).save() break if id1: d["id"]=id1 t.append(d)
Офлайн
Это не краказябры, это символы tab и возврат коретки. Вам нужно придумать, как их обрабатывать.
В частности
names_list=request.POST["names"].split(" ")
Офлайн
набор импутов неприемлим, игра копирует в буфер обмена имена именно в таком формате, пользователю их нада будет по быстрому отправить на мой сервак
не знаю совсем запутался в кодировках, отладочный принт выдает в иде, что пост вернул \r\n в строке, апи сервер игры, что ему отправили перевод строки в урл кодировке, подправил начало функции:
names_list=request.POST["names"] names_list=re.sub(r"&#\w\w;"," ",names_list) names_list=names_list.rstrip() s=names_list.replace("\r\n"," ") names_list=s.split(" ") print "names list",names_list t=[] for name in names_list: if not name: continue
Отредактировано despair4 (Окт. 1, 2014 16:45:03)
Офлайн
вроде разобрался откуда урл кодировка поперла, джанго оказывается возвращает textarea в простом текстовом формате, те в переменной было несколько \r\n, дальше их автоматом закодировало при отправке запроса с именем на апи сервер в урл, ответ с сервера выдал мне ошибку уже с урл кодировкой
в общем для исправления ошибки можно было не мудрить с
names_list=re.sub(r"&#\w\w;"," ",names_list)
Офлайн