Tôi đang viết một ứng dụng Django, nơi tôi đang mong đợi sử dụng nhiều lệnh management.py. Tôi thích ý tưởng về chức năng python có thông số với giá trị mặc định, nơi bạn xác định các param như:Đối số Python và thực hành tốt nhất đối số từ khóa
def function(param1=value1)
Vì vậy, tôi đang viết các lệnh quản lý của tôi như vậy mà bạn nhập vào như sau:
python manage.py createdb user=some_user db_name=some_name
Vì vậy, xa như tôi có thể nói, lệnh management.py không chấp nhận loại này của danh sách đối số, vì vậy tôi đã tạo ra một helper phải làm như sau:
def process_args(args=None):
kwargs = {}
if not args:
return kwargs
for i in args:
try:
k,v = i.split('=')
kwargs[k] = v
except ValueError, ve:
raise CommandError("Please Enter All Arguments as key=value. e.g. user=admin")
return kwargs
có cách nào tốt hơn để làm điều này?
Tôi đang gặp khó khăn này để làm việc. Lớp BaseCommand cần phải có các tùy chọn được thêm vào option_list của nó để nó nhận ra tùy chọn. Nhưng theo bài viết dưới đây, việc sử dụng make_option đã không được chấp nhận. Do đó tôi muốn sử dụng argparse, nhưng làm cách nào để thêm các đối số vào lớp BaseCommand? –
Thành thật mà nói, tôi sẽ đi với những gì @nrabinowitz đề xuất - sử dụng chức năng tích hợp của Django khi làm việc với Django. – Amber