Sto provando a creare un modello ndb in cui ogni record ha un "nome" di campo univoco. Vorrei definire questo campo come campo key_name e usarlo per cercare i record. Devo includere un campo nome o posso in qualche modo impostare il campo key_name su una stringa arbitraria che l'utente può specificare finché è univoca?Qual è il modo migliore per specificare un nome_chiave per il modello NDB di App Engine?
Sto pensando di utilizzare Model.get_or_insert per assicurarsi che i vecchi record non vengono sovrascritti, ma c'è un modo per dire se il valore di ritorno è appena creato o pre-esistente? Voglio essere in grado di visualizzare un messaggio di errore se l'utente ha inserito un nome duplicato.
Infine, ho provato a creare un campo key_name su un modello DjangoForms che utilizza il modello ndb sopra come metaclass in modo da poter utilizzare djangoforms per la validazione/rendering ma per qualche motivo i miei campi definiti non vengono visualizzati.
classe UserProfileForm (djangoforms.ModelForm): key_name = djangoforms.StringProperty() classe Meta: modello = ProfiloUtente
Si dovrebbe davvero fare domande separate per ognuno di questi, piuttosto che raggrupparli tutti insieme. –