Tài liệu lệnh quản lý Django hiển thị tất cả các lệnh được tạo trong thư mục ứng dụng/quản lý/lệnh. Có thể đặt lệnh vào các thư mục con, như ứng dụng/quản lý/lệnh/cài đặt và ứng dụng/quản lý/lệnh/bảo trì không? Làm thế nào điều này sẽ được thực hiện?Django: chia lệnh quản lý thành các thư mục con
Trả lời
Thật không may, như của Django 1.4 dường như không có cách nào để làm điều đó. Các nguồn cho django.core.management.__init__.py
có phương pháp này:
def find_commands(management_dir):
"""
Given a path to a management directory, returns a list of all the command
names that are available.
Returns an empty list if no commands are defined.
"""
command_dir = os.path.join(management_dir, 'commands')
try:
return [f[:-3] for f in os.listdir(command_dir)
if not f.startswith('_') and f.endswith('.py')]
except OSError:
return []
Như bạn có thể thấy, nó chỉ xem xét các file trực tiếp bên trong thư mục commands
, bỏ qua bất kỳ thư mục con. Tuy nhiên, nếu bạn "khỉ vá" chức năng này bằng cách nào đó, phần còn lại của mã nên hoạt động tốt, vì mã mà thực sự tạo ra các ví dụ Command
là thế này:
def load_command_class(app_name, name):
"""
Given a command name and an application name, returns the Command
class instance. All errors raised by the import process
(ImportError, AttributeError) are allowed to propagate.
"""
module = import_module('%s.management.commands.%s' % (app_name, name))
return module.Command()
Vì vậy, nếu bạn đã có một lệnh đặt tên subfolder.command
nó sẽ tải đúng kịch bản và khởi tạo lớp phù hợp.
Từ quan điểm thực tế, tuy nhiên, tôi thấy không sử dụng làm điều đó. Chắc chắn, có "namespace'd" lệnh sẽ được tốt đẹp, nhưng bạn luôn có thể tiền tố tất cả các lệnh của bạn với một số tên nếu bạn muốn, sử dụng một cái gì đó khác như một tách (chẳng hạn như _
). Độ dài tên lệnh - và số lần nhấn phím cần thiết để nhập chúng trong thiết bị đầu cuối - sẽ giống nhau ...
- 1. Quản lý các thư mục con trong thư viện phương tiện
- 2. Ghi nhật ký Django các lệnh quản lý tùy chỉnh
- 3. Chạy lệnh quản lý Python/Django từ UnitTest/WebTest
- 4. Lệnh tar của Linux: nén thư mục nhưng trừ các thư mục con
- 5. Xử lý nhiều ứng dụng ghi đè các lệnh quản lý trong Django
- 6. Phân chia quản lý trong Vim
- 7. SSRS BIDS 2008 Thư mục con của Giải pháp Explorer trong trình quản lý báo cáo
- 8. Làm thế nào tôi có thể chia một thư mục với hàng ngàn hình ảnh thành nhiều thư mục con?
- 9. Quản lý giao dịch Django
- 10. Làm cho thư mục không được quản lý bởi SVN
- 11. Bash, chạy tập lệnh trên mọi tệp .jpg trong thư mục có thư mục con
- 12. Lệnh quản lý tùy chỉnh Django chạy Phế liệu: Cách đưa các tùy chọn của Scrapy?
- 13. liệt kê các thư mục con trong một thư mục - Matlab (chỉ các thư mục con, không phải tệp)
- 14. Thư mục quản lý máy chủ SQL Thư mục dự án
- 15. Quản lý thư viện gốc với Maven
- 16. Nén thư mục chứa thư mục con
- 17. Quản lý các plugin Vim
- 18. Visual Studio: Cách quản lý mã được chia sẻ giữa các dự án
- 19. "Người quản lý" trong django là gì?
- 20. Xử lý các thư mục với dấu cách Python subprocess.call()
- 21. Các thư mục con trong .gitignore
- 22. SVN: Bỏ qua các thư mục con
- 23. lặp qua các thư mục con
- 24. Bash mkdir và các thư mục con
- 25. Django - chỉ định người quản lý mô hình Django quản trị nên sử dụng
- 26. Quản lý các tệp tĩnh cho nhiều ứng dụng trong Django
- 27. Tạo một thư mục con cho tất cả các thư mục trong thư mục
- 28. Liệt kê tất cả các tệp và thư mục trong thư mục + thư mục con
- 29. Quản lý tập lệnh phía máy khách với npm
- 30. Các phương pháp quản lý mã nguồn
bạn có thể cung cấp thêm chi tiết về sự cố của mình không? nó là những gì bạn đang tìm kiếm? https://docs.djangoproject.com/en/dev/howto/custom-management-commands/ – Marat
Tôi muốn đặt lệnh vào các thư mục con của ứng dụng/quản lý/lệnh. Tôi đã thêm chi tiết hơn cho câu hỏi. –