【发布时间】:2019-08-28 06:38:24
【问题描述】:
我正在尝试使用 django-widget-tweaks 来呈现以下表单字段:
{% render_field profile_form.bio class+="form-control" id="bio" rows="3" oninput="showBtn('updateProfile')" %}
进入这个:
<textarea class="form-control" id="bio" rows="3" oninput="showBtn('updateProfile')"></textarea>
但是,当 Django 将小部件中的单引号更改为双引号时,我遇到了解析错误。
showBtnjs函数如下:
// Shows a button given an id
showBtn: function (selector) {
let btn = document.getElementById(selector);
btn.classList.remove("btn-hidden");
}
我使用 django-widget-tweaks 的原因是为了让所有 html 类和属性在模板中保持隔离。
我已经尝试过的:
- 将单引号表示为文本实体
&#39;。它呈现模板(没有解析错误),但实际上并没有将 ascii 替换为引号,因此永远不会触发 js - 用斜线转义
- 使用
safe模板标签 - 使用
autoescape模板标签
作为参考,这里是表单模型:
# forms.py
class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ["bio"]
还有原来的模型:
# models.py
class Profile(models.Model):
""" Non-auth related user information about an user"""
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField(max_length=500, blank=True)
【问题讨论】:
标签: django django-templates django-widget-tweaks