django -- model中只有Field类型的数据才能成为数据库中的列

一、model的定义:

from django.db import models

# Create your models here.

class Person(models.Model):
    first_name = models.CharField(max_length=100)
    last_name  = models.CharField(max_length=100)

    genders=[
            ('M',''),
            ('W',''),
        ]
    
    gender=models.CharField(max_length=64,choices=genders)

    class Meta():
        index_together = ["first_name", "last_name"]
        db_table="person"

二、目标SQL语句:

BEGIN;
--
-- Create model Person
--
CREATE TABLE "person" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "first_name" varchar(100) NOT NULL, "last_name" varchar(100) NOT NULL, "gender" varchar(64) NOT NULL);
--
-- Alter index_together for person (1 constraint(s))
--
CREATE INDEX "person_first_name_last_name_7d35cbb8_idx" ON "person" ("first_name", "last_name");
COMMIT;

三、总结:

  1、django默认给表加上一个id字段做主键。

  2、django默认所有的列都不为null。

  3、model只有Field类型的字段才能成为列。

----

原文地址:https://www.cnblogs.com/JiangLe/p/7920057.html