2017-03-28 4 views
1

나는 django-money을 사용하고 있는데 나는 모형 형태로 테스트하고 싶은 돈 필드 (value = MoneyField(…))를 가지고있다. 내가 진술 형태의 구문 분석 코드에서 오류가 발생단위 테스트의 장고 양식 필드

def test_post_valid(self): 
    data = {'value': Money('99.99', currency='GBP'), } 
    response = self.client.post(url, data) 

:

(Pdb++) form.errors                
{u'value': [u'This field is required.']} 

올바른 형식은 무엇입니까 이것은 코드?

답변

2

django-moneyMoneyField으로 해킹을 수행하며 간단한 HTML 양식 필드로 변환되지 않으며 그 대신 값과 통화 코드에 대한 두 개의 HTML 양식 필드를 생성합니다.

당신은 유형 Decimal (또는 Decimal 강제 변환 할 수 있습니다 값)와 3 자 통화 코드의 value_currency (국가 코드 ChoiceField)의 value을 통과해야합니다.

def test_post_valid(self): 
    data = {'value_0': '99.99', 'value_1': 'GBP' } 
    response = self.client.post(url, data) 
+0

또한 django-money의 테스트 스위트를 통해 더 많은 작동 테스트를 확인할 수 있습니다. https://github.com/django-money/django-money/blob/master/tests/test_form.py –

+0

@ HåkenLid와 자신 사이에 있습니다. 'data = { 'value_0': '99 .99 ','value_1 ':'GBP '}'가 필요합니다. – Sardathrion

+0

아, 그러면 API가 상당히 최근에 변경되었을 수도 있습니다 (0.10 일 가능성이 높음). 코드가 손상 될 수 있기 때문에 짜증이납니다. 문서에 언급 된 내용이 없기 때문에. 우리가 가지고있는 버전에서는, 숫자 값을위한 필드의 원래 이름과 통화 코드의 필드 이름 "_currency"를 전달해야합니다. 알아두면 좋지만 이상하게 여기에서 배워야합니다. – user73657