Я хотел бы использовать name__iexact
с get_or_create, чтобы избежать дублирования по полям, введенным пользователем, где это возможно.
Модель моего провайдера имеет поле имени, которое я использую в get_or_create.
Поиск работает отлично, но при создании экземпляра в первый раз, как в приведенном ниже примере p1/Timber (имя
Не удается:
>>> p1, c1 = Provider.objects.get_or_create(name__iexact="Timber")
>>> p1, c1
(<Provider: >, True)
>>> p1.name
u''
Работает так, как ожидается здесь:
>>> p2, c2 = Provider.objects.get_or_create(name="Cedar")
>>> p2.name, c2
('Cedar', True)
>>> p3, c3 = Provider.objects.get_or_create(name__iexact="Cedar")
>>> p3, c3
(<Provider: Cedar>, False)
>>> Provider.objects.get_or_create(name__iexact="cedar")
(<Provider: Cedar>, False)
Является ли __iexact
несовместимым с частью создания get_or_create
, является ли это ожидаемое поведение (и почему), или я запускаю ошибку Django?