Форум сайта python.su
0
Доброго времени суток.
Столкнулся с непонятной проблемой, честно говоря все вменяемые идеи на предмет “почему так” закончились, был бы благодарен за возможную подсказку.
Python 2.7.8, Django 1.6.5
При конкатенации строк:
parameter = """<kod>""" + server_kod + """</kod> <RoundNum>""" + route_num + """</RoundNum> <date>""" + ticket_date + """</date> <FromPoint>""" + from_point_kod + """</FromPoint> <ToPoint>""" + to_point_kod + """</ToPoint> <mode>cancelation</mode> <Ticket> <uid>""" + _uid + """</uid> <AsUID>""" + as_uid + """</AsUID> </Ticket> """
TypeError at /cancel_tickets/ cannot concatenate 'str' and 'long' objects
<AsUID>""" + as_uid + """</AsUID>
asUID = models.CharField(blank=True, max_length=100)
as_uid '\u04316344840883958866'
Отредактировано Vort (Сен. 18, 2014 16:23:58)
Офлайн
568
Офлайн
0
Спасибо, переписал генерацию строки через форматирование и все заработало.
Собственно я потому и написал в ветку “для новичков”.
Но все равно мне не совсем ясно, откуда взялся long?
Офлайн
568
Vort
Но все равно мне не совсем ясно, откуда взялся long?
for x in [server_kod, route_num, ticket_date, from_point_kod, to_point_kod, _uid, as_uid]: print x, type(x)
Офлайн
857
Vortparameter = """<kod>""" + server_kod + """</kod> <RoundNum>""" + route_num + """</RoundNum> <date>""" + ticket_date + """</date> <FromPoint>""" + from_point_kod + """</FromPoint> <ToPoint>""" + to_point_kod + """</ToPoint> <mode>cancelation</mode> <Ticket> <uid>""" + _uid + """</uid> <AsUID>""" + as_uid + """</AsUID> </Ticket> """
paramfmt = """\ <kod>{}</kod> <RoundNum>{}</RoundNum> <date>{}</date> <FromPoint>{}</FromPoint> <ToPoint>{}</ToPoint> <mode>cancelation</mode> <Ticket> <uid>{}</uid> <AsUID>{}</AsUID> </Ticket> """ parameter = paramfmt.format( server_kod, route_num, ticket_date, from_point_kod, to_point_kod, _uid, as_uid )
Отредактировано py.user.next (Сен. 18, 2014 22:54:08)
Офлайн