Đặt cược tốt nhất của bạn với một tập hợp lớn các mô hình là sử dụng các mô-đun django cho lợi thế của bạn và chỉ cần tạo một thư mục có tên là các mô hình. Di chuyển models.py cũ của bạn vào thư mục mô hình này và đổi tên nó thành __init__.py
. Điều này sẽ cho phép bạn sau đó tách từng mô hình thành các tệp cụ thể hơn bên trong thư mục mô hình này.
Sau đó, bạn chỉ cần nhập từng mô hình vào không gian tên của __init__.py
.
Vì vậy, ví dụ, bạn có thể muốn tách nó thành:
yourapp/
models/
__init__.py # This file should import anything from your other files in this directory
basic.py # Just an example name
morespecificmodels.py # Just an example name
managers.py # Might want to separate your manager into this
Sau đó bạn __init__.py
chỉ có thể là:
from basic import * # You should replace * with each models name, most likely.
from managers import YourManager # Whatever your manager is called.
Đây là cấu trúc mà tôi sử dụng khi file mô hình của tôi có được rất lớn, tuy nhiên tôi cố gắng phân chia mọi thứ thành nhiều ứng dụng có thể cắm càng nhiều càng tốt - vì vậy điều này hiếm khi được tôi sử dụng.
Hy vọng điều này sẽ hữu ích.
Làm cách nào để bạn xử lý sạch sẽ models.py cần nhập managers.py và ngược lại? – Jeff
managers.py không cần nhập mô hình - mô hình được đề cập sẽ luôn có sẵn dưới dạng 'self.model' trên trình quản lý. – jacobian
Thật tuyệt ... trừ khi QuerySet của người quản lý cần tham chiếu một mô hình khác - thì bạn không thể nhập mô hình đó và phải đặt mô hình đó trong models.py (ví dụ: nếu bạn loại trừ các mục tồn tại trong một mô hình khác, v.v.). –