如何在Django模型字段中强制使用char(N)数据类型而不是varchar(N) [英] How to enforce char(N) datatype instead of varchar(N) in django model field
本文介绍了如何在Django模型字段中强制使用char(N)数据类型而不是varchar(N)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
根据django文档 https://docs.djangoproject.com/en /1.9/topics/db/models/
它是ORM创建的varchar
字段,而不是char
.
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
和等效的sql语句
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
所以在这里我们可以看到它正在使用varchar,但是我可以改为使用char
.我找不到办法.
除了手动更改列
解决方案
我认为您最好的选择是编写此处查看相关示例 >
As per django docs https://docs.djangoproject.com/en/1.9/topics/db/models/
it's ORM create varchar
field instead of char
.
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
and equivalent sql statement
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
so here we can see it is using varchar, but can I use char
instead. I'm unable to find a way.
apart from manually altering the column
解决方案
I think your best bet is to write a custom field type, base it on CharField
and alter its db_type()
method. Check relevant example here
这篇关于如何在Django模型字段中强制使用char(N)数据类型而不是varchar(N)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文