django 电子邮件验证问题

django email validation issue

我正在尝试使用 django_tables2 创建自定义列类型,以便在结果为有效电子邮件地址时将联系人详细信息呈现为 mailto: link,并且否则只是标准文本。

我遇到的问题是我的值似乎以重复字符的形式返回,并且根据下面的代码,电子邮件地址的第一个字符呈现为 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: link 或仅基于有效电子邮件地址的标准文本吗?非常感谢任何帮助!

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

星号表示将一个序列(这里是一个字符串)解包成它的部分(字符)并将它们用作参数。 (搜索 "Python argument unpacking" 以了解更多信息。)

相反,只需执行:

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