我有以下简单的模型。
from django.db import models
class ItemAttr(models.model):
name = models.CharField(max_length=255)
value = models.CharField(max_length=255)
转换成
CREATE TABLE `webapp_itemattr` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`name` varchar(255) NOT NULL,
`value` varchar(255) NOT NULL
)
现在,我想在“名称”字段中区分大小写。怎么办 我的目标是开始遵循SQL。
CREATE TABLE `webapp_itemattr` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`name` varchar(255) BINARY NOT NULL,
`value` varchar(255) NOT NULL
)
直接应用ALTER TABLE SQL,就可以了。但是在django单元测试中,此MODIFY SQL不适用。
ALTER TABLE webapp_itemattr MODIFY name VARCHAR(255) BINARY NOT NULL;
解决方法是,您可以从CharField继承并创建自己的字段:
class CustomBinaryCharField(models.CharField):
def db_type(self, connection):
return super(CustomBinaryCharField, self).db_type(connection) + ' binary'
这是有关自定义字段的Django文档的链接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句