[英]Django how to pass custom error message in class based views
我需要顯示無效 forms 的自定義錯誤消息。 我不知道如何在基於 class 的視圖中做到這一點。 這是我基於 class 的視圖:
class EditPatient(UpdateView):
model = Patient
form_class = PatientUpdateFrom
template_name = 'hospital/edit-patient.html'
def form_valid(self, form):
error_message = None
if form.is_valid():
name = self.request.POST["patient_name"]
email = self.request.POST["phone"]
if len(name) > 20:
error_message = 'maximum 20 character allowed in name'
if len(phone) > 20:
error_message = 'maximum 15 character allowed in phone'
""" #I tried this but didn't work
def get_context_data(self, **kwargs):
context = super(EditPatient,self).get_context_data(**kwargs)
context['error_message'] = error_message
return context
"""
if not error_message:
messages.add_message(self.request, messages.INFO, 'Patient Sucessfully Updated')
form.save()
return redirect('hospital:edit-patient',self.object.slug)
I know I can do it in forms.py though raise forms.ValidationError
but I want to know how to do it in class based views because I am updating few fields from another model.
您可以覆蓋UpdateView
class 的form_invalid
方法:
def form_invalid(self, form):
context = self.get_context_data(form=form)
context.update({"my_message": "Soemthign went wrong"})
return self.render_to_response(context)
或者,您可以使用django-braces並使用以下 mixin: https://django-braces.readthedocs.io/en/latest/form.html#forminvalidmessagemixin
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.