@DeeUs

(Python) Почему не работает условие?

Пытаюсь сделать защиту от спам-ботов через скрытое поле.
вот форма
html формы
<form action="/order/" method="get">
<div class="form-group name">
<input type="text" name="name" class="form-control required" placeholder="Ваше имя" required>
</div>
<div class="form-group last_name"> <!-- Это поле скрыто через CSS display:none -->
<input type="text" name="last_name" class="form-control required" placeholder="Ваша фамилия" >
</div>
<div class="form-group email">
<input type="text" name="email" class="form-control required" placeholder="Телефон или эл.почта" required>
</div>
<button type="submit" >Отправить</button>
</form>

Обрабатывается следующим образом
обработчик офрмы
def order(request):
	name = request.GET.get('name')
	email = request.GET.get('email')
	check_bots = request.GET.get('last_name')
	service = request.GET.get('service', 0) or 'r'
	remote_addr = request.environ['REMOTE_ADDR']

	order = OrderDetail.objects.create(name=name, contacts=email, service=service)

	t = Template('''Здравствуйте, пришла заявка с сайта site.ru<br>Имя: {{name}}<br>Контакт:  {{email}}<br>Услуга: {{service}}<br>IP адрес отправителя: {{remote_addr}}''')

	if check_bots == '':
# так же пробовал писать if not check_bots :
		body = t.render(Context({'name': name, 'remote_addr': remote_addr, 'email': email, 'service': order.get_service_display}))
		msg = EmailMessage('site.ru', body, config.EMAIL_FROM, [x.strip() for x in config.EMAIL_TO.split(',')])
		msg.content_subtype = "html"
		msg.send()

	return redirect(Page.objects.filter(reverse_id=service)[0].get_absolute_url())


из этого всего не срабатывает только условие... форма отправляется в любом случае, даже если я заполнил поле фамилия
  • Вопрос задан
  • 299 просмотров
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Вообще-то лучше так не извращаться, а использовать CSRF для джанги (у вас же джанга?)- https://djbook.ru/rel1.7/ref/contrib/csrf.html
Ну и если поле не задано, то должно возвращать None, проверьте на это значение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы