django -- verbose_name的对数据库层面的影响
2024-09-21 05:48:02
一、没有verbose_name时model的定义:
from django.db import models # Create your models here. class Question(models.Model):
question_text = models.CharField(max_length=128) class Answer(models.Model):
question = models.ForeignKey(Question)
answer_text = models.CharField(max_length=128)
二、对应的SQL:
BEGIN;
--
-- Create model Answer
--
CREATE TABLE "polls_answer" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "answer_text" varchar(128) NOT NULL);
--
-- Create model Question
--
CREATE TABLE "polls_question" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "question_text" varchar(128) NOT NULL);
--
-- Add field question to answer
--
ALTER TABLE "polls_answer" RENAME TO "polls_answer__old";
CREATE TABLE "polls_answer" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "answer_text" varchar(128) NOT NULL, "question_id" integer NOT NULL REFERENCES "polls_question" ("id"));
INSERT INTO "polls_answer" ("id", "answer_text", "question_id") SELECT "id", "answer_text", NULL FROM "polls_answer__old";
DROP TABLE "polls_answer__old";
CREATE INDEX "polls_answer_question_id_d45b3e6d" ON "polls_answer" ("question_id");
COMMIT;
三、带有verbose_name的model定义:
from django.db import models # Create your models here. class Question(models.Model):
question_text = models.CharField(max_length=128) class Answer(models.Model):
question = models.ForeignKey(Question,verbose_name="related question id")
answer_text = models.CharField(max_length=128)
四、对应SQL层的代码:
BEGIN;
--
-- Create model Answer
--
CREATE TABLE "polls_answer" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "answer_text" varchar(128) NOT NULL);
--
-- Create model Question
--
CREATE TABLE "polls_question" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "question_text" varchar(128) NOT NULL);
--
-- Add field question to answer
--
ALTER TABLE "polls_answer" RENAME TO "polls_answer__old";
CREATE TABLE "polls_answer" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "answer_text" varchar(128) NOT NULL, "question_id" integer NOT NULL REFERENCES "polls_question" ("id"));
INSERT INTO "polls_answer" ("id", "answer_text", "question_id") SELECT "id", "answer_text", NULL FROM "polls_answer__old";
DROP TABLE "polls_answer__old";
CREATE INDEX "polls_answer_question_id_d45b3e6d" ON "polls_answer" ("question_id");
COMMIT;
五、总结:
由上面的两组代码可以看出verbose_name 在SQL层面没有具体的体现、也就是说加不加verbose_name
对数据库层面没影响。
----
最新文章
- iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果
- UOJ20 解方程
- 配置nginx 高并发 php
- 一次ssl的手动实现——加密算法的简单扫荡
- Request.url请求路径的一些属性
- [Spring] spring-session + JedisPool 实现 session 共享
- hdu3473 线段树 划分树
- AngularJS中如何使用trigger报错$digest already in progress
- OpenStack high-level Functionsenabled
- Github命令详解
- 你绝对想不到R文件找不到(cannot resolve symbol R)的原因
- prop attr 到底哪里不一样?
- 关于对数组和指针的测试与分析OC
- Golang随机数生成
- Flink从入门到放弃(入门篇4) DataStreamAPI
- 不在models.py中的models
- Papers | 图像/视频增强 + 深度学习
- soapui 自动化教程
- linux测试环境搭建步骤
- 【Java】-NO.16.EBook.4.Java.1.003-【疯狂Java讲义第3版 李刚】- oop
热门文章
- MySQL排序:SELECT ORDER BY
- Android Studio导入Eclipse项目的两种方法
- Keepalived系列一:Keepalived.conf 详解
- 如何捕获 System.loadLibrary 产生的异常?(转)
- oracle列自增实现(1)-Sequence+Trigger实现Oracle列自增
- 用OpenSSL把二进制的Cer证书转换程Base64格式的PEM格式的证书
- java json与map互相转换(一)
- sql如何通过当前日期获取上周,上上周,上上上周的起始日期(周一_周七)
- spark的外排:AppendOnlyMap与ExternalAppendOnlyMap
- 移动端强大的富文本编辑器richeditor-android