Я пытаюсь использовать 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 превращает одинарные кавычки в виджете в двойные кавычки.
Функция showBtn
js выглядит следующим образом:
// Shows a button given an id
showBtn: function (selector) {
let btn = document.getElementById(selector);
btn.classList.remove("btn-hidden");
}
Причина, по которой я использую django-widget-tweaks, заключается в том, чтобы сохранить все HTML-классы и атрибуты изолированными в шаблонах.
Что я уже пробовал:
- представляет одиночную кавычку в виде текстовой сущности
'
. Он отображает шаблон (без ошибки синтаксического анализа), но на самом деле не заменяет ascii на кавычки, поэтому js никогда не запускается
- убегая с косой чертой
- с использованием
safe
templatetag
- с использованием
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)