2009-03-30 11 views

Trả lời

12

Không có generic cách tốt nhất. Nhưng có một cách đúng đắn cho trường hợp của bạn.

  • đưa quan điểm trong file của mìnhnhập họ theo quan điểm của bạn. Đây là tốt chỉ để xem làm thế nào nó hoạt động
  • làm cho một ứng dụng riêng biệt bên trong dự án để duy trì một tập hợp các quan điểm
  • tạo của riêng bạn generic views mà chia sẻ quan điểm chung cho hầu hết các ứng dụng của bạn

Cũng như một ví dụ bắt đầu: tôi khuyên bạn nên bắt đầu từ mô hình và làm việc cho mình lên:

  • cách nhiều mô hình bạn có?
  • Họ có thực sự tất cả liên quan hoặc chúng có thể được nhóm không?
  • nếu có thể được nhóm chia ứng dụng thành hai ứng dụng
  • do đó bạn cũng sẽ chia quan điểm
  • xác định xem các chức năng tương tự và làm cho họ generic.
2

Tôi muốn tách riêng các chế độ xem với mục đích hoặc chức năng tương tự thành một tệp và đưa vào views.py. Tôi chỉ làm điều này để dễ đọc và bảo trì. Ví dụ, khung nhìn CRUD cho một đối tượng hoặc một nhóm đối tượng cụ thể.

Bằng cách nhập các chế độ xem này trực tiếp vào tệp views.py chính, nó cho phép mọi người không quen thuộc với quy ước của bạn để tìm địa điểm.

views/object_view.py 
26

Một số nhà phát triển làm cho quan điểm của họ một python package thay vì một module. Điều này đơn giản có nghĩa là tạo một thư mục có tên là views trong ứng dụng của bạn, sau đó đặt mỗi khung nhìn trong mô đun (tệp) riêng của nó trong gói đó.

Sau đó, bạn tạo một tệp __init__.py (đây là những gì tạo nên một gói). Tệp này có thể trống hoặc có thể nhập tất cả các mô-đun xem vào không gian tên riêng của nó.

Nếu nó trống, bạn sẽ phải nhập từng chế độ xem bạn cần trực tiếp nếu không, bạn có thể nhập nó giống như mô-đun views.py.

+0

Đây là những gì tôi làm cho các đối tượng mô hình của mình vì tôi đang làm việc với một tên miền kế thừa lớn. – ThatAintWorking

1

Trong một thế giới lý tưởng, bạn không cần phải làm điều này. Thay vào đó, hãy thử cấu trúc lại mã của bạn thành các ứng dụng django khác nhau cho mỗi mục đích phụ mà dự án của bạn cần. Bằng cách đó, bạn có thể phân vùng dự án của bạn thậm chí tốt hơn bạn có thể có nếu bạn chỉ tách tệp views.py.

Đối với lời khuyên về làm thế nào để chia tay dự án của bạn vào các ứng dụng khác nhau, tôi khuyên bạn nên đọc của James Bennett thực Django dự án, đó là những gì tôi đang đọc lại ngay bây giờ :)