ссори,
class Chel(models.Model):
name = models.CharField(max_length=10)
guy = Chel(name='xxx')
class Meta(type):
def __call__(self, *args, **kwargs):
obj = type.__call__(self, *args)
for name in kwargs:
setattr(obj, name, kwargs[name])
return obj
class A(object):
__metaclass__ = Meta
a = A(x=1)
TypeError: object() takes no parameters
a = A()(x=1)
TypeError: 'A' object is not callable
Решение я нашел, не правильно создавал последний класс :
A = type.__new__(Meta, 'A', (object,), {})
#и теперь при создании экземпляров можно определять атрибуты:
a1 = A(attr1=1, attr2="test")
print(a1.attr1, a1.attr2)
1 test