Qual é a melhor maneira de especificar um key_name para o modelo NDB do App Engine?

Eu estou tentando criar um modelo ndb onde cada registro tem um campo único "nome". Eu gostaria de definir esse campo como o campo key_name e usá-lo para procurar os registros. Eu tenho que incluir um campo de nome ou posso de alguma forma definir o campo key_name para uma seqüência arbitrária que o usuário pode especificar, desde que seja único?

Estou pensando em usar Model.get_or_insert para garantir que os registros antigos não sejam sobrescritos, mas existe uma maneira de saber se o valor de retorno foi criado ou pré-existente? Eu quero ser capaz de exibir uma mensagem de erro se o usuário digitou um nome duplicado.

Por fim, tentei criar um campo key_name em um modelo DjangoForms que usa o modelo ndb acima como metaclasse para que eu possa usar djangoforms para validação / renderização, mas por alguma razão meus campos definidos não aparecem.

classe UserProfileForm (djangoforms.ModelForm): key_name = djangoforms.StringProperty () classe Meta: model = UserProfile

questionAnswers(1)

yourAnswerToTheQuestion