2012-11-01 2 views
1

다른 많은 사람들과 마찬가지로, 나는 테스트 애플리케이션을 구축하여 django에서 웹 개발을 배웠습니다. 기본 모델을 설정했습니다. 필자는 조명기를 사용하여 추가 테스팅에 필요한 절대 최소 데이터가있는 테이블 몇 개를 채웠습니다.django의 커스텀 관리 커맨드에 인수로서 부정적인 값을 건네기

이제 다른 테이블에 대해 필자는 필요한 인수를 취하는 사용자 지정 관리 명령을 통해 데이터 튜플을 만들고 싶습니다. 예상대로 작동하면 작성한 데이터를 --save 옵션을 추가하여 데이터베이스에 저장합니다.

명령 구문 (C)에이

create_raw_data owner_id temperature [--save] 
owner_id가 필요하고

temperature처럼 선택적이다. Handle 방법 안에, 내가 지정된 인수 등을 함께 raw_data을 만들 공장 소년을 사용하고

내가 구글을 몇 가지 문제가 있지만 SO에 검색했던

는, 장고 등, 내가 작업 명령을 가지고 문서 벌금. 제외

때 입력 음의 온도 ... 그런

나는 다음과 같은 오류를 얻을

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 안에 넣으십시오. 그러나 컨트롤이 여기까지 도달하지 못하는 것 같습니다. ... 도와주세요 내가 잘못이 무엇인지 확실하지 않다

...

덕분에 많은

+1

'django escaping characters'에 대한 검색 - 빼기 기호가 옵션의 표시기로 표시되면 django에게 옵션이 아니라 인수 중 하나임을 알리십시오 – KevinDTimm

+0

- 백 슬래시로 -를 이스케이프하면 어떻게됩니까? '\ -5' – dm03514

+0

사용자 정의 명령을 올바르게 디버그 할 수 없습니다. 그것과 @ KevinDTimm에서 힌트와 함께, 그게 문제는 optparse의 parse_args 메서드와 함께 보인다 것으로 나타났습니다. optparse가 더 이상 사용되지 않고 argparse가 권장되지만 장고는 optparse를 사용하기를 권장하기 때문에 여러 곳에서 읽었습니다. 짧은 이야기로, [link] (http://objectmix.com/python/211112-getopt-negative-numbers.html)의 링크는 몇 가지 대안을 제안하고 ** create_raw_data 1 - -5 ** works 예상대로 그래서 해결 방법을 찾았습니다. 감사합니다. – mithril

답변

1

그래서이 건너 올 수 있습니다 다른 사람에 대한 답변을 제공하는 고정 된 문제를 얻었다.

문제는 optparse의 parse_args 메소드에서 발생했습니다. 나는 optparse가 더 이상 사용되지 않고 대신에 argparse가 권장된다는 것을 여러 곳에서 읽었습니다. 장고는 optparse를 사용하기를 권장합니다. 간단히 말해서 링크의 링크는 몇 가지 대안을 제안하고 create_raw_data 1 -- -5을 사용하면 예상대로 작동합니다. 그래서 해결 방법을 찾았습니다. 감사.

관련 문제