这是模型类(django版本2.0)
class Host(models.Model):
host_id=models.CharField(max_length=20,primary_key=True)
host_label=models.CharField(verbose_name="linux_host_label",max_length=255)
数据库中的表格结构
mysql> show create table dashboard_host;
| dashboard_host | CREATE TABLE `dashboard_host` (
`host_id` varchar(20) NOT NULL,
`host_label` varchar(255) NOT NULL,
PRIMARY KEY (`host_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
但是如何在模型类中做到这样
mysql> show create table dashboard_host;
| dashboard_host | CREATE TABLE `dashboard_host` (
`host_id` varchar(20) NOT NULL COMMENT '主机id',
`host_label` varchar(255) NOT NULL COMMENT '主机标签',
PRIMARY KEY (`host_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 |
+----------------+-----------------------------------
答案 0 :(得分:1)
直接从模型中django没有这样的方法。你可以查看机票https://code.djangoproject.com/ticket/24638
但你可以做一件事,
首先makemigrations your app
,然后编辑迁移文件并放置
CREATE TABLE `dashboard_host` (
`host_id` varchar(20) NOT NULL COMMENT '主机id',
`host_label` varchar(255) NOT NULL COMMENT '主机标签',
PRIMARY KEY (`host_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
由django自动生成的sql查询的原位
然后migrate
答案 1 :(得分:0)
看起来像您目前不能,至少在Django中不行。我能够在Django中找到2个类似的请求票证:
#13867 Feature request: Comments in Django models saved to database schema
9年前开业,一年后以wontfix
的名义撤消,根据的基本原理,“它的有用/噪声比不好。ORM的目的不是提供支持的数据库引擎的每个功能的Python接口”
#18468 Add the ability to define comments in table / columns
开业于7年前,被标记为上述内容的复制品,故事的结尾直到...情节扭转! 重新开放于2018-03年,在邮件列表中进行了讨论,现在标记为已接受。最初的拒绝者说“我想我们可以实现该功能。(是的,我从六年前买票时就改变了主意。)”
所以现在这仅需要一个实现/补丁/ PR,尚未完成(但是任何人都可以做出贡献!)
票证提交者开始制作补丁,并创建了一个Django应用程序,该应用程序解决了PostgreSQL后端上的字段问题(使用verbose_name
和help_text
属性)。您正在使用MySQL,但对其进行修改可能很简单:
答案 2 :(得分:0)
您可以使用python软件包:https://pypi.org/project/django-comment-migrate/, 它具有两个特征: