Tenho uma tabela DadosPessoais que possui uma coluna chamada status_civil, que deve aceitar apenas os seguintes valores: "Solteiro", "Divorciado", "Viúvo" e "Casado". Estou em dúvida entre duas formas de implementar isso em um projeto Django: Criar uma model separada chamada StatusCivil, preencher manualmente com esses quatro valores, e usar uma ForeignKey para StatusCivil na model DadosPessoais. Usar diretamente um CharField com a opção choices na própria model DadosPessoais, usando uma tupla com esses quatro valores fixos. Quais são as implicações técnicas e práticas de cada abordagem nos seguintes aspectos: Validação e integridade dos dados Criação e manutenção de formulários (no Django Admin ou em views personalizadas) Facilidade de manutenção e escalabilidade da aplicação Existe alguma recomendação do próprio Django sobre quando é mais adequado usar choices e quando é melhor usar uma tabela relacionada com ForeignKey? Continue reading...