django电子邮件验证问题

时间:2019-01-20 05:33:51

标签: python django django-tables2

我正在尝试使用django_tables2创建自定义列类型,以便当结果是有效的电子邮件地址时,可以将联系人详细信息显示为mailto:链接,否则将显示标准文本。 / p>

我遇到的问题是,我的值似乎以迭代字符的形式返回,并且按照下面的代码,电子邮件地址的第一个字符被呈现为mailto:的一部分,而第二个字符列中显示了电子邮件地址的。除了validate_email之外,我还尝试了if "@" inregex,它们都返回相同的迭代字符结果。

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 :(得分:0)

这里的问题是您的*value参数。

星号表示将序列(此处为字符串)解压缩为其各个部分(字符)并将其用作参数。 (搜索“ Python参数解压缩”以了解更多信息。)

相反,请执行以下操作:

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