2
我有简单的模型在Django:奇怪不区分大小写选择行为的Django + mysql的
class Tag(Model):
name = CharField(unique=True, max_length=50)
当我这样做:
t = 'Ansible'
print("Want tag: " + t)
tg, created = Tag.objects.get_or_create(name=t)
print("Got tag: " + tg.name)
print("Query: {}".format(Tag.objects.filter(name=t).query))
print("Query result: {}".format(Tag.objects.filter(name=t).first().name))
我得到的结果:
Want tag: Ansible
Got tag: ansible
Query: SELECT `main_tag`.`id`, `main_tag`.`slug`, `main_tag`.`name`, `main_tag`.`added_time`, `main_tag`.`public_tips_count`, `main_tag`.`private_tips_count` FROM `main_tag` WHERE `main_tag`.`name` = Ansible
Query result: ansible
我用Django==1.10.3
和
# mysql --version
mysql Ver 14.14 Distrib 5.5.34, for debian-linux-gnu (armv7l) using readline 6.2
我期待什么?
我从get_or_create
这将创建一个名为Ansible
新标签期待,但它返回命名为ansible
谢谢!,对我很失望=( – user3479125
不用担心,很高兴能得到帮助。 – e4c5