Django-拆分model(一个模块一个model)

25 篇文章 0 订阅
13 篇文章 0 订阅

大多数Django教程都是将models放在models.py文件(模块)中, 然而随着models类的增加, 将类放在一个文件中太混乱了, 于是将models做成一个package: 

models/ 
    __init__.py 
    usermodels.py 
    othermodel.py 

这样就可以将models定义拆分到多个模块中,  但是当用命令同步数据时发现不可用: 

$python manage.py sqlall blog 

不会生成数据库创建命令(APP的名字是blog) ,需要做如下更改:

在__init__.py中import模块: 

from usermodels import * 
from othermodel import * 

在定义model的类中加一个内部类Meta: 

class User(models.Model): 
    title = models.CharField(max_length = 100) 
    class Meta: 
        app_label = 'blog' 

app_lable的值为APP的名称,这样就可以将models定义到多个文件中了。

Meta中app_label 意义

这个选型只在一种情况下使用,就是你的模型不在默认的应用程序包下的models.py文件中,这时候需要指定你这个模型是哪个应用程序的。

Options.app_label
如果一个model定义在默认的models.py,例如如果你的app的models在myapp.models子模块下,你必须定义app_label让Django知道它属于哪一个app
app_label = 'myapp'

更多Meta的意义请移步传送门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值