다른 많은 사람들과 마찬가지로, 나는 테스트 애플리케이션을 구축하여 django에서 웹 개발을 배웠습니다. 기본 모델을 설정했습니다. 필자는 조명기를 사용하여 추가 테스팅에 필요한 절대 최소 데이터가있는 테이블 몇 개를 채웠습니다.django의 커스텀 관리 커맨드에 인수로서 부정적인 값을 건네기
이제 다른 테이블에 대해 필자는 필요한 인수를 취하는 사용자 지정 관리 명령을 통해 데이터 튜플을 만들고 싶습니다. 예상대로 작동하면 작성한 데이터를 --save
옵션을 추가하여 데이터베이스에 저장합니다.
명령 구문 (C)에이
create_raw_data owner_id temperature [--save]
owner_id
가 필요하고
temperature
처럼 선택적이다. Handle
방법 안에, 내가 지정된 인수 등을 함께 raw_data
을 만들 공장 소년을 사용하고
는, 장고 등, 내가 작업 명령을 가지고 문서 벌금. 제외
때 입력 음의 온도 ... 그런
나는 다음과 같은 오류를 얻을Usage: C:\test\manage.py create_raw_data [options]
Creates a RawData object. Usage: create_raw_data owner_id temperature [--save]
C:\test\manage.py: error: no such option: -5
내가 인수를 구문 분석이 코드는 다음과
for index, item in enumerate(args):
if index == 0:
owner_id = int(item)
else index == 1:
temp = int(item)
I 같다 print(args)
을 첫 번째 줄로 넣고 Handle
안에 넣으십시오. 그러나 컨트롤이 여기까지 도달하지 못하는 것 같습니다. ... 도와주세요 내가 잘못이 무엇인지 확실하지 않다
...
덕분에 많은
'django escaping characters'에 대한 검색 - 빼기 기호가 옵션의 표시기로 표시되면 django에게 옵션이 아니라 인수 중 하나임을 알리십시오 – KevinDTimm
- 백 슬래시로 -를 이스케이프하면 어떻게됩니까? '\ -5' – dm03514
사용자 정의 명령을 올바르게 디버그 할 수 없습니다. 그것과 @ KevinDTimm에서 힌트와 함께, 그게 문제는 optparse의 parse_args 메서드와 함께 보인다 것으로 나타났습니다. optparse가 더 이상 사용되지 않고 argparse가 권장되지만 장고는 optparse를 사용하기를 권장하기 때문에 여러 곳에서 읽었습니다. 짧은 이야기로, [link] (http://objectmix.com/python/211112-getopt-negative-numbers.html)의 링크는 몇 가지 대안을 제안하고 ** create_raw_data 1 - -5 ** works 예상대로 그래서 해결 방법을 찾았습니다. 감사합니다. – mithril