【发布时间】:2015-05-31 04:17:31
【问题描述】:
我想将name__iexact 与 get_or_create 一起使用,以避免在可能的情况下用户输入的字段出现重复。
我的 Provider 模型有一个我在 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 错误?
【问题讨论】:
标签: python django postgresql django-models