fields = ['first_name', 'last_name', 'birth_date']
user__first_name, user__last_name, birth_date = self.fields.get(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 :(得分:1)
由于self.fields
是字典,因此您需要的内容相当于:
user__first_name, user__last_name, birth_date = (self.fields.get("first_name"),
self.fields.get("last_name"),
self.fields.get("birth_date"))
所以,例如,使用列表理解:
fields = ['first_name', 'last_name', 'birth_date']
user__first_name, user__last_name, birth_date = [self.fields.get(x) for x in fields]
答案 1 :(得分:0)
在python列表中,对象没有get 这样做的正确方法是......
>>> user__first_name, user__last_name, birth_date = fields