2017-09-28 1 views
1
fields = ['first_name', 'last_name', 'birth_date'] 
user__first_name, user__last_name, birth_date = self.fields.get(fields) 

self.fields은 사전 일 수 없으므로 이러한 일을 할 수 없습니다. 작동하도록 어떻게 수정할 수 있습니까?self.fields에서 여러 값 가져 오기

198  def check_user__first_name_user__last_name_birth_date(self): 
    199   import ipdb; ipdb.set_trace() 
    200 
--> 201   fields = ['first_name', 'last_name', 'birth_date'] 
    202   user__first_name, user__last_name, birth_date = self.fields.get(fields) 
    203   for m in self._check(CustomerProfile, user__first_name=user__first_name, 
    204        user__last_name=user__last_name, 
    205        birth_date=birth_date): 
    206    self._match(m.user, _('Same first name, last name and birth date.'), 
    207       fields, ', '.join(map(str, self.fields.get(fields)))) 
+0

당신이하려는 것을 이해할 수 있도록 더 많은 코드를 보여줄 수 있습니까? – user6731765

+2

'self.fields'가 항상 같은 수의 요소를 가지고 있다면, 항상 같은 방식으로 정렬됩니다.'user__first_name, user__last_name, birth_date = self.fields' 할 수 있습니다. –

+0

내 코드 @ user6731765 –

답변

1

당신의 상응하는 뭔가가 필요, 사전입니다 :

fields = ['first_name', 'last_name', 'birth_date'] 
user__first_name, user__last_name, birth_date = [self.fields.get(x) for x in fields] 
0

python 목록 개체에는 get이 없습니다. 지능형리스트를 사용하여, 예를 들어, 그래서

user__first_name, user__last_name, birth_date = (self.fields.get("first_name"), 
               self.fields.get("last_name"), 
               self.fields.get("birth_date")) 

: self.fields 이후
이 될 것이라고 할 수있는 적절한 방법 ...

>>> user__first_name, user__last_name, birth_date = fields 
관련 문제