Estoy tratando de crear un modelo ndb donde cada registro tenga un campo único "nombre". Me gustaría definir este campo como el campo key_name y usarlo para buscar los registros. ¿Debo incluir un campo de nombre o puedo establecer de alguna manera el campo key_name en una cadena arbitraria que el usuario puede especificar siempre que sea único?¿Cuál es la mejor manera de especificar un key_name para el modelo NDB de App Engine?
Estoy pensando en usar Model.get_or_insert para asegurarme de que los registros antiguos no se sobrescriban, pero ¿hay alguna manera de saber si el valor devuelto es nuevo o está preexistente? Quiero poder mostrar un mensaje de error si el usuario ingresó un nombre duplicado.
Por último, traté de crear un campo key_name en un modelo DjangoForms que utiliza el modelo ndb anterior como la metaclase, así que puedo usar djangoforms para la validación/representación pero por alguna razón mis campos definidos no aparecen.
clase UserProfileForm (djangoforms.ModelForm): nombre_tecla = djangoforms.StringProperty() Meta clase: modelo = PerfilUsuario
En realidad, debería hacer preguntas separadas para cada una de estas, en lugar de agruparlas todas juntas. –