проблема проверки электронной почты Django - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь создать пользовательский тип столбца, используя django_tables2, чтобы отображать контактные данные в виде ссылки mailto:, если в результате получен действительный адрес электронной почты, а в противном случае просто стандартный текст.

Проблема, с которой я столкнулся, заключается в том, что мое значение, похоже, возвращается в виде повторяющихся символов, и, согласно приведенному ниже коду, первый символ адреса электронной почты отображается как часть mailto:, тогда как второй символ адрес электронной почты отображается в столбце. Помимо validate_email я пробовал if "@" in и regex, все возвращали одинаковые итерированные результаты символов.

class ContactColumn(tables.Column):
    def render(self,value):
        try:
            validate_email(value)
            return format_html('''<a href="mailto:{}">{}</a>''',*value)
        except ValidationError:
            return value

Может ли кто-нибудь указать мне правильное направление относительно того, как успешно отобразить ссылку mailto: или просто стандартный текст, основанный на действительном адресе электронной почты? Любая помощь очень ценится!

1 Ответ

0 голосов
/ 20 января 2019

Проблема здесь в вашем *value аргументе.

Звездочка означает распаковать последовательность (здесь, строку) в ее части (символы) и использовать их для аргументов. (Найдите «Распаковка аргументов Python», чтобы узнать больше.)

Вместо этого просто сделайте:

format_html('''<a href="mailto:{}">{}</a>''', value, value)
...