Como ya te han comentado asegurate de que la protección contra CSRF esta correctamente configurada y funcionando.
También, si aun con la protección frente a CSRF consiguen mandar spam (porque el spam podria ser enviado hasta por el propio usuario a proposito sin que suceda un CSRF) podrias, si e spam es mandando el mismo formulario igual muchas veces o almenos uno o varios campos del formulario son exactamente iguales en cada envio del bot, serializa el formulario y obten un hash, guarda en cache ese hash por un tiempo prudencial de varios segundos o minutos (mira cada cuanto manda el bot el formulario) y comprueba de este modo que un formulario no es enviado dos veces seguidas, obviamente si detectas que es enviado dos veces seguidas borra la cache y vuelvela a crear para reiniciar el tiempo de vida de la cache, porque elbot seguira mandando el formulario muy posiblemente. De este modo deberias almenos reducir la cantidad de spam de forma considerable.
EDITO: cuando hablo de cachear me refiero usando la cache a bajo nivel de Django, obviamente.