You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django 4.1.4中如何在HTML属性中加条件判断避免代码重复

Django模板中避免重复form标签的解决方案

你遇到的问题是因为模板代码里{% if %}和{% url %}之间的空格被保留到了action属性值里,导致URL前后多了空格,浏览器无法正确识别。下面是几种不重复form标签的解决方法:

方法一:去掉多余空格,直接嵌套标签

把if块里的空格去掉,让url标签的输出直接拼接成正确的URL:

<form action="{% if update %}{% url 'in.edit_session' session.id %}{% else %}{% url 'in.save_session' %}{% endif %}" method="POST" class="form">

这样action属性会得到干净的URL,不会有多余空格干扰。

方法二:用{% url ... as %}提前存URL到变量

先根据update的值把对应URL存到变量里,再在form标签里引用,代码可读性更好:

{% if update %}
    {% url 'in.edit_session' session.id as form_action_url %}
{% else %}
    {% url 'in.save_session' as form_action_url %}
{% endif %}

<form action="{{ form_action_url }}" method="POST" class="form">
    <!-- 表单内容 -->
</form>

方法三:使用Django模板条件表达式(Django 1.10+支持)

你用的4.1.4完全支持这种写法,能让代码更简洁:

<form action="{% url 'in.edit_session' session.id if update else 'in.save_session' %}" method="POST" class="form">

这里的条件表达式直接写在{% url %}标签里,当update为True时调用带参数的URL,否则调用无参数的。

内容的提问来源于stack exchange,提问作者calin24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 16:10:29