Това, което виждате, е правилното поведение.
get_or_create
е съкращение за „вземете и върнете обекта, съответстващ на kwargs
, ако не съществува, създайте го с помощта на defaults
'. Вашето търсене търси обект, където name
е нечувствително съвпадение на 'cedar'
. Този обект съществува, така че се връща. Нищо повече, нищо по-малко.
Сега, ако няма съвпадение, Стефан е прав и ще трябва да посочите name
в defaults
параметър. Всички търсения, съдържащи разделителя за търсене __
се премахват от параметрите, предадени на create()
.