#django #django-forms #django-views #django-templates
#django #django-forms #django-views #django-templates
Вопрос:
Я все еще новичок в django. Играю с приложением leadmanager, и я не знаю, почему моя форма не проверяется.
число просмотров
def index(request):
lead=LeadForm()
if request.method == 'POST':
lead=LeadForm(request.POST)
if lead.is_valid():
messages.success(request, f'Thank you for registering. Someone will be contacting you soon.')
return redirect('index')
else:
lead=LeadForm()
messages.error(request, f'Something went wrong. Please try again later.')
return render(request, "frontend/index.html", {'lead':lead})
в index.html
<form action="" method="POST" class="lead-form">
{% csrf_token %}
<fieldset class="lead-info">
<div class="form-control">
<label for="">Full Name</label>
{{ lead.fullname }}
</div>
<div class="form-control">
<label for="">Email</label>
{{ lead.email }}
</div>
<div class="form-control">
<label for="">Phone</label>
{{ lead.phone }}
</div>
<div class="form-control">
<label for="">City</label>
{{ lead.city }}
</div>
</fieldset>
<button type="submit" class="btn-pill">Submit</button>
</form>
в forms.py
class LeadForm(forms.ModelForm):
email = forms.EmailField()
class Meta:
model = Lead
fields = ['fullname', 'email', 'phone', 'city', 'contact_preference']
widgets = {'contact_preference': forms.RadioSelect }
Приветствуется любая помощь. contact_preference выполняет рендеринг К вашему сведению, я просто сократил код, чтобы этот вопрос не был таким длинным.
Комментарии:
1. удалите
lead=LeadForm()
вelse
части и отобразите ее с{{ form }}
помощью в шаблоне. Тогда она покажет ошибки. Если вы визуализируете ее вручную, вам нужно добавить для каждого поля{{ lead.fieldname.errors }}
: simpleisbetterthancomplex.com/article/2017/08/19 /…2. @WillemVanOnsem У меня есть это, чтобы перехватить оператор if / else {% if messages %} {% для сообщения в messages %} <div class=»alert alert-{{ message.tags }}»> <span>{{ message }}</span> </div> {% endfor %} {% endif %}
3. @WillemVanOnsem это переходит прямо к оператору else. Я сделал все, что вы предложили, и это все равно переходит к оператору else. Я пытаюсь привести. имя_поля.ошибки сейчас.
4. @GlennDelostrico в шаблоне, где ваше поле contact_preference?
5. @WillemVanOnsem так что это похоже на поздний час или раннее утро, как бы вы на это ни смотрели. Я буквально скопировал lead. fieldname.errors вместо lead.phone.erros, lead.email.errors, я забыл, что установил для своего телефона значение phonenumbefields, поэтому я добавил код страны. Спасибо, Уиллем. Я просто устал и отсталый, лол