我正在尝试自定义django中的默认错误列表。我尝试按照docs进行操作,但问题是假定的html被输出为文本而不是html:
我不太确定为什么会这样,因为代码几乎是从文档中复制粘贴的。码:
class DivErrorList(ErrorList):
def __str__(self):
return self.as_divs()
def as_divs(self):
if not self: return ''
return '<div class="test">%s</div>' % ''.join(['<div class="error">%s</div>' % e for e in self])
def addUser(request):
add_user_form = AddUserForm()
messages.warning(request, 'message')
if request.method == 'POST':
add_user_form = AddUserForm(request.POST, error_class=DivErrorList)
if add_user_form.is_valid():
user = add_user_form.save()
customer_group = Group.objects.get(name = 'group_name')
user.roles.add(customer_group)
messages.success(request, 'message')
return redirect('users')
else:
messages.error(request, 'message')
context = {
'add_user_form': add_user_form,
}
return render(request, 'users/backend/user/user_add.html', context)
<div class="w-full mt-6">
{% include 'components/typography/form_label.html' with label='Gjenta passord' %}
{{ add_user_form.password2 }}
{{ add_user_form.password2.errors }}
</div>
您需要将字符串标记为“安全”,即:
return '<div class="test">%s</div>' % ''.join(['<div class="error">%s</div>' % e for e in self])
应该
return mark_safe('<div class="test">%s</div>' % ''.join(['<div class="error">%s</div>' % e for e in self]))
其中mark_safe
来自:
from django.utils.safestring import mark_safe
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句