Skip to content

Commit 5f197de

Browse files
author
RadoRado
committed
Refactor to use getattr
1 parent 7abc7bb commit 5f197de

1 file changed

Lines changed: 6 additions & 8 deletions

File tree

week15/3-Abstraction-Over-Forms/solution.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ def __init__(self, form_data=None):
7373

7474
if not callable(value):
7575
self.__dict__[key] = value
76-
# setattr(self, key, value)
7776

7877
for key, value in self._form_data.items():
7978
if key in self.__dict__:
@@ -89,14 +88,13 @@ def is_valid(self):
8988
for _, field in self.fields:
9089
field.is_valid()
9190

92-
cls_dict = vars(self.__class__)
93-
9491
for name, field in self.fields:
95-
validator_name = 'validate_{}'.format(name)
96-
validator = cls_dict.get(validator_name, False)
97-
98-
if validator and callable(validator):
99-
getattr(self, validator_name)(field)
92+
try:
93+
validator_name = 'validate_{}'.format(name)
94+
validator = getattr(self, validator_name)
95+
validator(field)
96+
except AttributeError:
97+
pass
10098

10199
def __str__(self):
102100
tags = ['<form>']

0 commit comments

Comments
 (0)