|
@@ -11,10 +11,6 @@ class Reference(FieldDataHandler):
|
11
|
11
|
def __init__(self, allowed=[], internal=False, **kwargs):
|
12
|
12
|
self.allowed = allowed
|
13
|
13
|
self.internal = internal
|
14
|
|
- '''
|
15
|
|
- if not self.is_ref_valid():
|
16
|
|
- raise ValueError("The target of the reference is not valid")
|
17
|
|
- '''
|
18
|
14
|
super().__init__(internal=self.internal, **kwargs)
|
19
|
15
|
|
20
|
16
|
## @brief gets the target of the reference
|
|
@@ -22,18 +18,20 @@ class Reference(FieldDataHandler):
|
22
|
18
|
return self._refs
|
23
|
19
|
|
24
|
20
|
## @brief checks if the target is valid
|
25
|
|
- '''
|
26
|
|
- def is_ref_valid(self):
|
27
|
|
- relateds = self.get_relateds()
|
28
|
|
- if not isinstance(relateds, self._refs_class):
|
29
|
|
- return False
|
30
|
21
|
|
31
|
|
- if isinstance(relateds, EmClass):
|
32
|
|
- relateds = [relateds]
|
|
22
|
+ def check_data_value(self, value):
|
33
|
23
|
|
34
|
|
- for related in relateds:
|
|
24
|
+ if not isinstance(value, self._refs_class):
|
|
25
|
+ return (value, "The reference should be an instance of %s, %s gotten" % (self._refs_class, value.__class__))
|
|
26
|
+
|
|
27
|
+ if isinstance(value, EmClass):
|
|
28
|
+ value = [value]
|
|
29
|
+
|
|
30
|
+ if isinstance(value, dict):
|
|
31
|
+ ref_values = value.values()
|
|
32
|
+
|
|
33
|
+ for related in value:
|
35
|
34
|
if not isinstance(related, EmClass):
|
36
|
|
- return False
|
|
35
|
+ return (value, "The reference %s should be an instance of EmClass, %s gotten" % (related.display_name, related.__class__))
|
37
|
36
|
|
38
|
|
- return True
|
39
|
|
- '''
|
|
37
|
+ return (value, None)
|