@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())


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

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

Войти через центр авторизации
Похожие вопросы
21 янв. 2022, в 15:36
3000 руб./за проект
21 янв. 2022, в 15:28
6000 руб./за проект
21 янв. 2022, в 14:56
25000 руб./за проект