2009-08-27 29 views
11

Tôi vừa học được rằng chia lớp mô hình thành các tệp khác nhau sẽ phá vỡ nhiều chức năng được tích hợp sẵn của django.Tại sao django thực thi tất cả các lớp mô hình trong models.py?

Tôi đến từ một nền tảng java. Ở đó, nó không được chấp nhận như là một thực hành tốt khi viết các tệp lớp rất dài. Nhưng việc thực thi tập tin đơn của django cho tất cả các lớp mô hình có thể sẽ khiến lập trình viên viết các tệp models.py rất dài. Điều này sẽ gây khó khăn cho lập trình viên để xem tổ chức của toàn bộ mô hình miền.

Vậy tại sao django thực thi một tệp để chứa tất cả các lớp miền?

Tôi đã tìm thấy a solution proposal cho vấn đề này bằng cách googling. Nhưng tôi không thể chắc chắn liệu điều này có hiệu quả hay không. Bạn có đề xuất giải pháp này không?

+0

Liên kết của bạn đã chết. Bạn có thể vui lòng cập nhật nó? – Gabriel

+0

Có thể trùng lặp của [models.py trở nên lớn, cách tốt nhất để phá vỡ nó là gì?] (Http://stackoverflow.com/questions/1160579/models-py-getting-huge-what-is-the-best -way-to-break-it-up) – Ajoy

Trả lời

7

Không gian tên duy nhất: có. Mô-đun đơn: không.

Mô hình của bạn phải được nhập từ không gian tên appname.models.

+0

Tôi nghĩ rằng câu trả lời này có lẽ là câu trả lời đúng cho câu hỏi này, nhưng nó chắc chắn có thể làm với việc được làm rõ ràng hơn. Tôi nghĩ rằng về cơ bản nó sẽ chuyển thành 'appname.models' cần nhập tất cả các mô hình từ các mô-đun khác. Giải thích lý do tại sao hoặc nơi hành vi này được ghi lại sẽ hữu ích. – SpoonMeiser

+0

Tương tự, tại sao sẽ có 'appname.models' chỉ cần nhập các mô-đun xác định các mô hình khác không đủ? Chắc chắn điều đó sẽ kích hoạt phép thuật metaclass cần thiết? Nếu không, tại sao? – SpoonMeiser

Các vấn đề liên quan