Django models 拆分

本文介绍了解决Django项目中models文件过长问题的两种方法:一是根据业务逻辑拆分app;二是创建models包并按需拆分模型文件。推荐使用第一种方法以保持项目结构清晰。

在进行Django开发的时候,有的时候会遇到models文件过长的问题,这个时候就需要对其进行拆分.

解决models文件过长的问题有两种基本方式:

1. 根据某些条件(比如业务逻辑)拆分app,没必要将一个app写的过于冗长,可以将其进行功能拆分,自然而然,models文件也就没那么长了.

2. 删除掉自动生成的models.py文件,创建models包,记住这里是包,不是文件夹。所以需要在models下添加__init__.py文件。

然后在models下按你的意愿创建模型文件,比如在models/下创建student.py和teacher.py。但是此时执行python manage.py syncdb仍然不能生成对应的数据表。需要在__init__.py文件中导入这些module,并在__init__.py中加入:

from student import *

from teacher import *

现在执行python manage.py syncdb就会生成对应的表了.

当然,还要注意的是,最好在拆分的model中每张表都添加一个元选项:app_label,指明是那个app下的model。

例:

class Student(models.Model):

    name = models.CharField(max_length = 255, null = False)

    age = models.IntegerField(null = True)

    class Meta:

        app_label = 'person'

        db_table = 'student'

这两种方式都可行,但是比较推荐使用第一种方式,首先它不用像第二种方式每个class都添加app_label,另外拆分app会使正个项目结构更加清晰明了.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值