Задать вопрос
@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())


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

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽