В своё время решал похожую задачу так: анализировал поведение до защищаемого события (правда, это было голосование в конкурсе, а не регистрация).
Правила примерно такие:
— человек пришёл со страницы списка участников
— минимум секунду читал текст на странице голосования
— проголосовал
— перещёл и загрузил со всей статикой (можно подсунуть какую-нибудь динамическую картинку, отдаваемую джангой) страницу просмотра результатов и пр.
Обычно боты тупо долбяться в страницу формы, игнорируя всё остальное. Хотя, они и умнеют со временем.
После того, как клиент определён, как поздозрительный, совсем не обязательно наглухо закрывать регистрацию, можно, например, добавить капчу, это спасёт от ложных срабатываний, при том, что большинство будут регистрироваться и так. Полезно будет также мониторить кол-во клиентов, определённых как хорошие и подозрительные. Это поможет отладить механизм.