Jaki jest najlepszy sposób określenia nazwy klucza dla modelu NDB App Engine?

Próbuję utworzyć model ndb, w którym każdy rekord ma unikalne pole „nazwa”. Chciałbym zdefiniować to pole jako pole nazwa_klucza i użyć go do wyszukania rekordów. Czy muszę dołączyć pole nazwy lub czy mogę w jakiś sposób ustawić pole key_name na dowolny ciąg, który użytkownik może określić, o ile jest unikalny?

Myślę o użyciu Model.get_or_insert, aby upewnić się, że stare rekordy nie zostaną nadpisane, ale czy istnieje sposób, aby stwierdzić, czy wartość zwracana jest nowo utworzona, czy już istnieje? Chcę móc wyświetlić komunikat o błędzie, jeśli użytkownik wprowadził zduplikowaną nazwę.

Wreszcie, próbowałem utworzyć pole key_name w modelu DjangoForms, który używa powyższego modelu ndb jako metaklasy, więc mogę użyć djangoform do sprawdzenia poprawności / renderowania, ale z jakiegoś powodu moje zdefiniowane pola nie są wyświetlane.

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

questionAnswers(1)

yourAnswerToTheQuestion