2017-04-11 8 views
0

일부 TastyPie 유효성 검사를 시도하고 있지만 Python (및 프로그래밍 전반)에 익숙하고 TastyPie에 완전히 익숙하지 않으므로 도움이됩니다. 사전에서 여러 개의 키를 확인한 다음 각 키를 사용하여 키를 처리하는 방법은 무엇입니까?

bundle.data

은 사전이고, 나는

  1. 다음

  2. 각 키의 값을 좀 더 검증을 수행하여 사전에 키의 존재를 확인하시기 바랍니다.

샘플 코드 :

class SampleClass(Validation): 

    def is_valid(self, bundle, request=None): 
     errors = defaultdict(list) 

     for number in (bundle.data['number_one'], bundle.data['number_two']): 
      if number not in bundle.data: 
       errors[number] = ['missing field'] 
      else: 
      # Do more stuff with number 

이것에 대해 갈 수있는 가장 파이썬 방법은 무엇입니까?

for number in.... 문과 if number not in bundle.data 문이 중복 된 것 같습니다. 그 맞습니까? 두 숫자가 모두 사전의 키이고 변수 이름에 할당하면 수표를 결합하여 둘 다 할 수 있습니까?

감사합니다.

답변

0

Tastypie 문제가 아닙니다. 그것은 파이썬 문제입니다.

for key in [key1, key2]: 
    if key not in my_list: 
     # key not exist 
    else: 
     # key exist 

그리고 코드 :

class SampleClass(Validation): 

    def is_valid(self, bundle, request=None): 
     errors = defaultdict(list) 

     for number in ('number_one', 'number_two'): 
      if number not in bundle.data: 
       errors[number] = ['missing field'] 
      else: 
       value = bundle.data[number] 
       # Do more stuff with number 
내가 bundle.data에서의 .... 문 번호와 경우에 수에 대해 생각하지 않는다

는 존재의 사용을 확인하려면 진술은 불필요합니다. 그 맞습니까?

이 코드는 의미가 없습니다. key1 또는 key2가 없으면 KeyError가 발생합니다.

두 숫자가 모두 사전의 키이고 변수 이름에 할당하면 수표를 결합하여 둘 다 할 수 있습니까?

if key1 in data and key2 in data: 
    val1 = data[key1] 
    val2 = data[key2]