【问题标题】:Django Template Variable Failing as href ValueDjango模板变量作为href值失败
【发布时间】:2021-10-13 14:15:31
【问题描述】:

我创建了一个 Django 模板,用作我的应用程序的电子邮件模板。在某些操作后,celery 任务使用 Sendgrid 从此模板发送一封电子邮件。以前我对 URL 进行了硬编码,但现在我需要它们是动态的。我将 url 字符串作为名为 profile_url 的变量传递。我知道 URL 的格式正确,因为我在调用 send_mail() 函数之前打印它。如果我使用这样的值,它会起作用:

<p>{{ profile_url }}</p>

但是,当我将它用作 href 值时,链接呈现为不可点击:

<a
  href="{{ profile_url }}"
  target="_blank"
  style="
    text-decoration: none;
    color: #ffffff;
    line-height: 40px;
    display: block;
    "
>Go to your profile</a>

如果有人可以帮助我或至少在这里为我指明正确的方向,我将不胜感激!

【问题讨论】:

    标签: django django-templates


    【解决方案1】:
    <a
      href="{{ modelname.profile_url }}"
      target="_blank"
      style="
        text-decoration: none;
        color: #ffffff;
        line-height: 40px;
        display: block;
        "
    >Go to your profile</a>
    

    您必须使用其模型名称调用字段,并且我还假设此 profile_url 在模型中。URLField 仍然出现错误添加您的模型

    【讨论】:

    • 我从未使用过models.URLField。这是一种有趣的方法,但我看不出为什么需要将此 URL 显式连接到模型。如果可能的话,我真的只想完全按照传递给 send_confirmation_mail 函数的方式使用 url。
    • @AlecD'Alelio django 根据我们的需要为我们提供类型字段,例如 Char Field Image Field 所以我假设您将 url 保存在 charfield 中,这仅适用于字符字符串,您可以在其中保存该 url 但是如果您想加载带有 href 标记的 url,它不会将其视为 url,它将被视为字符串,因此必须使用适用于该类型的字段
    • 感谢@Shreyash 的提示!但是,此 url 未保存在我的数据库中的任何位置,并且与我的任何模型都没有关系。它只是用于模板电子邮件的 send_mail() 函数的一个参数。因此,我不确定如何使用模型字段来实现这一点。你是对的,这个问题可能与 URL 是一个字符串这一事实有关,因此可能 Django 模板不知道如何处理它。
    猜你喜欢
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多