在进行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会使正个项目结构更加清晰明了.
本文介绍了解决Django项目中models文件过长问题的两种方法:一是根据业务逻辑拆分app;二是创建models包并按需拆分模型文件。推荐使用第一种方法以保持项目结构清晰。

9681

被折叠的 条评论
为什么被折叠?



