Đây là giải pháp của tôi. Thêm mã bên dưới vào cuối tệp cài đặt của bạn.
# Process --set command line option
import sys
# This module can be imported several times,
# check if the option has been retrieved already.
if not hasattr(sys, 'arg_set'):
# Search for the option.
args = filter(lambda arg: arg[:6] == '--set=', sys.argv[1:])
if len(args) > 0:
expr = args[0][6:]
# Remove the option from argument list, because the actual command
# knows nothing about it.
sys.argv.remove(args[0])
else:
# --set is not provided.
expr = ''
# Save option value for future use.
sys.arg_set = expr
# Execute the option value.
exec sys.arg_set
Sau đó chỉ cần vượt qua bất kỳ mã cho bất kỳ lệnh quản lý:
./manage.py runserver --set="DEBUG=True ; TEMPLATE_DEBUG=True"
Bạn có muốn cài đặt DEBUG mỗi lần 'python manage.py runserver' gọi hoặc bạn có lệnh tùy chỉnh của bạn 'python manage.py foo' và bạn muốn đặt DEBUG bên trong nó? – Kirill
Tôi muốn đặt bất kỳ cài đặt nào cho bất kỳ lệnh nào. Như thế này: './manage.py --set =" DEBUG = True "máy chủ lưu trữ'. Có lẽ cách dễ nhất là thực thi giá trị tham số dòng lệnh ngay trong settings.py. Nhưng tôi đã hy vọng có một cách để không sửa đổi mã nguồn ở tất cả. – raacer