se adiciona fields.One2Many

FossilOrigin-Name: 94c1cca50451a46c417d925b27fdd53d8199b8dc58783e600c84179eac666a36
This commit is contained in:
bit4bit
2021-06-25 23:55:36 +00:00
parent ab462a6ca5
commit 5f5a6182c9
4 changed files with 51 additions and 3 deletions

View File

@@ -0,0 +1,25 @@
from .field import Field
class BoundModel:
def __init__(self, creator):
self.creator = creator
def create(self):
return self.creator()
class One2Many(Field):
def __init__(self, model, name=None, namespace=None, default=None):
self.model = model
self.field_name = name
self.namespace = namespace
self.default = default
self.count_relations = 0
def __get__(self, inst, cls):
assert self.name is not None
def creator():
attribute = '%s_%d' % (self.name, self.count_relations)
self.count_relations += 1
return self._create_model(inst, name=self.field_name, model=self.model, attribute=attribute)
return BoundModel(creator)