Cara eu desenvolvi alguns sistemas em Django como freela, posso estar falando besteira, mas esse form.is_valid() não é mt bom na pratica, funciona bem ele testa o tipo e se o dado é válido, eu prefiro receber cada campo do formulário em um if e colocar todas as condicionais realmente reais, pois o .is_valid() ja vai fazer algumas, mas na maioria dos casos a gente sempre precisa adicionar uma coisa especifica, ai eu parei de usar .is_valid() pois retornava true na lógica, mas não na regra de negócio, ai até isolar o dado, fazer o if especifico, como forma de pratica eu faço assim. Ai eu não sou mais surpreendido com dado inválido no bando prd.