To, co widzisz, to prawidłowe zachowanie.
get_or_create to skrót od 'pobierz i zwróć obiekt pasujący do kwargs , jeśli nie istnieje, utwórz go za pomocą defaults „. Twoje wyszukiwanie szuka obiektu, w którym name to dopasowanie bez rozróżniania wielkości liter do 'cedar' . Ten obiekt istnieje, więc jest zwracany. Nic więcej, nic mniej.
Teraz, jeśli nie było dopasowania, Stéphane ma rację i musiałbyś podać name w defaults parametr. Wszystkie wyszukiwania zawierające separator wyszukiwania __ są usuwane z parametrów przekazanych do create() .