Det, du ser, er den korrekte adfærd.
get_or_create er en forkortelse for 'hent og returner det objekt, der matcher kwargs , hvis det ikke findes, skal du oprette det ved hjælp af defaults '. Dit opslag leder efter et objekt, hvor name er et ufølsomt match til 'cedar' . Det objekt eksisterer, så det returneres. Intet mere, intet mindre.
Hvis der ikke var noget match, har Stéphane ret, og du skal angive name i defaults parameter. Alle opslag, der indeholder opslagsseparatoren __ fjernes fra de parametre, der er sendt til create() .