J'essaie de personnaliser la liste des erreurs par défaut dans Django. J'ai essayé ce qui suit les docs mais le problème est que le prétendu html est affiché en tant que texte au lieu de html :
Je ne sais pas vraiment pourquoi cela se produit, car le code est pratiquement un copier-coller de la documentation. Code :
forms.py
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])
vues.py
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)
html
<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>