Próbuję utworzyć model ndb, w którym każdy rekord ma unikatowe pole "nazwa". Chciałbym zdefiniować to pole jako pole key_name i użyć go do wyszukania rekordów. Czy muszę dołączyć pole nazwy lub czy mogę w jakiś sposób ustawić pole nazwa_klucza na dowolny ciąg znaków, który użytkownik może określić, o ile jest unikatowy?Jaki jest najlepszy sposób określenia nazwy klucza dla modelu NDB App Engine?
Zastanawiam się, czy użyć Model.get_or_insert, aby upewnić się, że stare rekordy nie zostaną nadpisane, ale czy istnieje sposób na sprawdzenie, czy wartość zwracana jest nowo utworzona lub istniejąca wcześniej? Chcę móc wyświetlać komunikat o błędzie, jeśli użytkownik wprowadził zduplikowaną nazwę.
Na koniec próbowałem utworzyć pole key_name w modelu DjangoForms, który używa powyższego modelu ndb jako metaklasu, więc mogę używać djangoforms do sprawdzania/renderowania, ale z jakiegoś powodu moje zdefiniowane pola nie pojawiają się.
klasa UserProfileForm (djangoforms.ModelForm): KEY_NAME = djangoforms.StringProperty() class Meta: Model = UserProfile
Powinieneś zadać osobne pytania do każdego z nich, zamiast je wszystkie zsumować. –