如何在Django模型字段中强制使用char(N)数据类型而不是varchar(N)

编程入门 行业动态 更新时间:2024-10-23 23:28:07
本文介绍了如何在Django模型字段中强制使用char(N)数据类型而不是varchar(N)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

根据django文档 docs.djangoproject/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.我找不到办法. 除了手动更改列

解决方案

我认为您最好的选择是编写自定义字段类型,将其基于CharField并更改其db_type()方法.在此处查看相关示例

As per django docs docs.djangoproject/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)

本文发布于:2023-10-28 01:00:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1535032.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字段   数据类型   而不是   模型   如何在

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!