2012-03-07 6 views
1

zope 및 요청 객체를 사용하여 가끔 변수에 다른 유형이 생깁니다. 나는이 고려해야 :배열에 zope에있는 요청 객체 캐스팅

docs = request.form['ID'] 

때로는 문서는 하나의 ID입니다 (그리고 문자열 인), 기타 항목이 여러 ID를, 그리고 배열입니다. 문자열이 반복 가능하기 때문에 이것은 매우 혼란 스러울 수 있습니다.

if isinstance(docs, basestring): 
    docs = [docs] 

for doc_id in docs: 
    dosomething(doc_id) 

들어오는 변수가 문자열 인 경우에만 작동합니다.

변경되는 요청 유형을 처리하는 가장 좋은 방법은 무엇입니까? 아마도 필자의 경우에는 iterable (그리고 wrong) 타입을 캐스팅하고 나머지는 에러를 던지기를 원할 것입니다. 사용자가 하나 이상의 상기 항목 중 두 확인한다면

<input type="checkbox" name="items:list" value="foo" /> Foo<br/> 
<input type="checkbox" name="items:list" value="bar" /> Bar<br/> 

요청의 결과 items 엔트리가 될 것이다

답변