django -- verbose_name的对数据库层面的影响
一、没有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
对数据库层面没影响。
----
django -- verbose_name的对数据库层面的影响的更多相关文章
- python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库).自定义Field.数据表更改.QuerySet API 一.Django 模型(数据库) Django 模型是与数据库相关的,与数据库相关的代码 ...
- Django学习笔记之数据库-数据库与模型
MySQL数据库 在网站开发中,数据库是网站的重要组成部分.只有提供数据库,数据才能够动态的展示,而不是在网页中显示一个静态的页面.数据库有很多,比如有SQL Server.Oracle.Postgr ...
- Django开发基础----操作数据库
Django中对数据库的操作是由Models来完成的 Models是什么? 通常,一个Model对应数据库的一张数据表 Django中Models以类的形式出现 它包含了一些基本字段以及数据的一些行为 ...
- SQL SERVER 2012 AlwaysOn– 数据库层面 02
搭建 AlwaysOn 是件非常繁琐的工作,需要从两方面考虑,操作系统层面和数据库层面,AlwaysOn 非常依赖于操作系统,域控,群集,节点等概念: DBA 不但要熟悉数据库也要熟悉操作系统的一些概 ...
- Django学习笔记之数据库-QuerySet_API
QuerySet API 我们通常做查询操作的时候,都是通过模型名字.objects的方式进行操作.其实模型名字.objects是一个django.db.models.manager.Manager对 ...
- 循序渐进Python3(十二) --2-- web框架之django简单实现oracle数据库操作
在 Django 中构建 Oracle 数据库支持的 Web 应用程序 了解如何配置 Django 以便与 Oracle 数据库交互,并使用 ORM 进行数据库连接. 产能在软 ...
- Django开发笔记之数据库的设计
后台采用Django开发,可以体会到开发的便利之处,对于一个项目来说,首先最重要的是数据库的设计,那么在Django下数据库设计主要是如下步骤: 1,需求分析,这点子不用多说,而我也深刻体会到了没有原 ...
- Django 反向生成 从数据库生成Model
Django 反向生成 从数据库生成Model 使用Django生成Model python manage.py inspectdb或python manage.py inspectdb > m ...
- Scrapy中使用Django的Model访问数据库
Scrapy中使用Django的Model进行数据库访问 当已存在Django项目的时候,直接引入Django的Model来使用比较简单 # 使用以下语句添加Django项目的目录到path impo ...
随机推荐
- Windows7安装UBUNTU虚拟机
1.下载虚拟机:http://www.orsoon.com/Soft/12192.html 2.下载UBUNTU10.04:http://releases.ubuntu.com/lucid/ 3.安装 ...
- JAVA的Spring注入机制事例详解
一.前言 最近使用Spring里面的依赖注入,比如StudentServiceImple2.java代码: package di.service.imple; import com.mengya.sp ...
- Jenkins 持续集成综合实战
Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建.测试和部署等功能.本文以 CentOS7 环境为例,总结了 Jenkin ...
- [转]mysql组合索引与字段顺序
下列转自:http://www.tech-q.cn/archiver/tid-11673.html 很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是 ...
- hdu 4336 概率dp + 状压
hdu 4336 小吃包装袋里面有随机赠送一些有趣的卡片,如今你想收集齐 N 张卡片.每张卡片在食品包装袋里出现的概率是p[i] ( Σp[i] <= 1 ), 问你收集全部卡片所需购买的食品数 ...
- Android M 动态权限获取
新的权限获取方式除了要求像之前版本号一样在AndroidManifest文件里静态申请之外,应用还需依据须要请求权限,方式採用向用户显示一个请求权限的对话框. 这些被动态申请的权限能够在系统设置中被手 ...
- Android tree应用框架
简单介绍 一个好的Android应用开发框架,能够加快Android开发速度,今天笔记基于很多开源项目自写了一款Android应用框架. 内容 框架包含:界面管理(Activity管理).数据库操作( ...
- Kibana 日志查询
1 概述 很多系统的日志都会放在 Kibana 供查询,就是所谓的 ELK.Kibana 除了可以使用界面供的一些 tab 或者 button 去筛选日志,也可以在搜索栏中使用 Lucene 的语法简 ...
- ios中ASIHTTPRequst的封装
#import <Foundation/Foundation.h> #import "ASIHTTPRequest.h" #import "ASIDownlo ...
- 使用tensorflow-serving部署tensorflow模型
使用docker部署模型的好处在于,避免了与繁琐的环境配置打交道.使用docker,不需要手动安装Python,更不需要安装numpy.tensorflow各种包,直接一个docker就包含了全部.d ...