sqlite - 如何在 peewee 模型上添加唯一的不敏感约束?
问题描述
我想使用 peewee orm 和 sqlite 数据库为以下模型添加一个唯一的不敏感约束
import peewee as p
db = p.SqliteDatabase(':memory:')
class Player(p.Model):
name = p.CharField()
class Meta:
database = db
我想防止在表格中添加“乔”和“乔”作为玩家姓名。由于该字段区分大小写,因此唯一的约束是不够的。
谢谢你的想法!
解决方案
您可以在 Meta.constraints 列表中指定任意约束:
from peewee import *
db = SqliteDatabase(':memory:')
class K(Model):
key = TextField()
class Meta:
constraints = [SQL('UNIQUE ("key" COLLATE NOCASE)')]
database = db
db.create_tables([K])
K.create(key='k1')
K.create(key='K1') # Fails
推荐阅读
- python - 将带有负数的列表作为字符串排序会产生意外的结果
- mysql - 如何用regexp_replace在mysql中用特定字符替换多个字符?
- ibm-mq - IBM MQ 镜像 docker 旧版本
- sql-server - 将空值下移到 SQL Server 中的下一行
- spring-security - 在 ff4j 上启用弹簧安全性时如何创建功能切换?
- inno-setup - 使用使用 inno 安装脚本编写的命令行以 VERYSILENT 模式安装应用程序
- sql - 无法在 sql server 中设置地理数据类型的值
- amazon-web-services - Amazon EMR:仅在先前的作业已完成时才开始新的计划作业
- matlab - MATLAB JIT for 循环优化
- python - 处理 OCR 导入