python - Django:模板中的自定义标签和标签评估

标签 python django django-templates django-template-filters

我编写了一个名为 addattrs 的自定义标记,它允许我轻松添加 HTML 属性。

我就是这样使用的:

<div>
  <label>Last name</label>
  {{ form.last_name|addattrs:"class=blue-form&placeholder=Please enter your name" }}
</div>

效果很好。但现在,我想将 value 属性添加到 HTML:

<div>
  <label>Last name</label>
  <!-- last_name is availaible from the current context -->
  {{ form.last_name|addattrs:"class=blue-form&value=last_name" }}
</div>

问题是 last_name 没有按照我的表单进行评估和编写。如何强制评估last_name?我尝试了 {% with last_name as myvariable %} block ,但结果完全相同。

谢谢。

编辑

alecxe 解决方案有效。 但是,如果该值是日期时间,则它不再起作用(没有 python 错误,但 HTML 中根本没有属性。)我尝试了以下方法:

{% with "class=blue-form&value="|add:birth_date as attrs %}
    {{ form.birth_date|addattrs:attrs }}
{% endwith %}

最佳答案

您可以使用add template filter :

{% with "class=blue-form&value="|add:last_name as attrs %}
    {{ form.last_name|addattrs:attrs }}
{% endwith %}
<小时/>

对于日期值,需要先将其转换为字符串。在 View 中,或在模板中通过 date template filter ,例如:

{% with birth_date|date:"D d M Y" as my_date %}
    {% with "class=blue-form&value="|add:my_date as attrs %}
        {{ form.last_name|addattrs:attrs }}
    {% endwith %}
{% endwith %}

关于python - Django:模板中的自定义标签和标签评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27737917/

相关文章:

python - 使用 Scrapy 的 Web Scraper

python - keras loss 是否必须每批输出一个标量或整个批处理输出一个标量?

python - Google App Engine Flex 是否支持 Pipfile?

python - Django:在模板中的同一循环中循环遍历 2 个对象

python - 这段在 python 中求解积分方程的代码有什么问题

python - 从 django/python 中的日志文件读取后如何保持数据格式化

django - 捕获 django 表单中的验证错误

python - 尝试通过 For 循环显示数据库中每个用户的 amount_won 总额

python - Django:不可散列类型 :'list' 错误

python - 调用Django模板中对象的方法