代码之家  ›  专栏  ›  技术社区  ›  cr1

Django电子邮件验证问题

  •  0
  • cr1  · 技术社区  · 6 年前

    我正在尝试使用创建自定义列类型 django_tables2 以便我可以将联系人详细信息呈现为 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
    

    谁能给我指出正确的方向,如何成功地呈现 麦尔托: 基于有效电子邮件地址的链接或标准文本?非常感谢您的帮助!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Kevin Christopher Henry    6 年前

    这里的问题是你的 *value 争论。

    星号意味着将一个序列(这里是一个字符串)解包成它的部分(字符),并将这些部分用于参数。(搜索“python参数解包”了解更多。)

    相反,只要做到:

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