Проблема с символом% Python во время манипуляции (проблема с Escape-символом) - PullRequest
0 голосов
/ 03 августа 2011

Я пытаюсь отправить подтверждение по электронной почте в Django, но есть проблема с символами excape.

У меня есть вспомогательная функция для содержимого почты как

def getActivationMailBody():
    email_body = "<table width='100%'>
    email_body = email_body + '<p>' + '%(confirmLink)s' + '</p>'
    return email_body

И URL-адрес подтверждения встроен как

email_body = getActivationMailBody()
email_body = email_body % {'confirmLink': '%s/kullanici/onay/%s/%s'%(WEB_URL,md5.new(form.cleaned_data['email']).hexdigest()[:30], activation_key)}
msg = EmailMessage(email_subject, email_body, DEFAULT_FROM_EMAIL, [email_to]) 
msg.content_subtype="html"
res = msg.send(fail_silently=False)

Тем не менее, при встраивании confirmLink я получаю сообщение об ошибке

unsupported format character ''' (0x27) at index 18

Я обнаружил, что проблема вызвана символом %, но я не мог понять, как я могу это исправить.

Не могли бы вы дать мне какое-нибудь предложение? Спасибо

1 Ответ

3 голосов
/ 03 августа 2011

В строке формата% может быть экранирован удвоением:

email_body = "<table width='100%%'>"

Немного странно, как вы сконструировали это, поскольку getActivationEmailBody не возвращает тело письма, а вместо этого строку формата для создания тела. Возможно, вы захотите переименовать функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...