Hi Mikael, The problem is happening because of this: __init__() takes from 1 to 2 positional arguments but 11 were given
On your new __init__(), you added just 2 parameters: `self` and `source`. But you overwrote the default `models.Model` init, which receives way more parameters (the original signature for this function is `__init__(self, *args, **kwargs)`). What are you actually trying to achieve with this? On Tue, Jun 26, 2018 at 1:17 PM, <[email protected]> wrote: > Hi all :-) > > I'd like to archive some data. > > I did that : > > class AbstractDataModel(models.Model): > > xxx > > > class Meta: > abstract = True > > > def __iter__(self): > > return iter([self.xxx, self.yyy, self.zzz, self.aaa, > self.qqq, self.mode_bbb]) > > > class DataModel(AbstractDataModel): > > > pass > > > class DataModelArchive(AbstractDataModel): > # https://stackoverflow.com/questions/21699707/python-how- > to-copy-all-attibutes-from-base-class-to-derived-one > def __init__(self, source=None): > if source is not None: > self.__dict__.update(source.__dict__) > > > > But when I want to access data in DataModelArchive, like > DataModelArchive.objects.all() for example, > I get > > > Traceback (most recent call last): > File "/home/.../tests.py", line 1090, in test_archive > print(DataModelArchive.objects.all()) > File "/home/.../venv/lib/python3.6/site-packages/django/db/ > models/query.py", line 248, in __repr__ > data = list(self[:REPR_OUTPUT_SIZE + 1]) > File "/home/.../venv/lib/python3.6/site-packages/django/db/ > models/query.py", line 272, in __iter__ > self._fetch_all() > File "/home/.../venv/lib/python3.6/site-packages/django/db/ > models/query.py", line 1179, in _fetch_all > self._result_cache = list(self._iterable_class(self)) > File "/home/.../venv/lib/python3.6/site-packages/django/db/ > models/query.py", line 63, in __iter__ > obj = model_cls.from_db(db, init_list, row[model_fields_start:model_ > fields_end]) > File "/home/.../lib/python3.6/site-packages/django/db/models/base.py", > line 507, in from_db > new = cls(*values) > TypeError: __init__() takes from 1 to 2 positional arguments but 11 were > given > > > > What am I doing wrong ? > > Thx > ;-) > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit https://groups.google.com/d/ > msgid/django-users/ac3a7a8f-f878-48b3-943a-eb47f6b03e7e%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/ac3a7a8f-f878-48b3-943a-eb47f6b03e7e%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- *Julio Biason*, Sofware Engineer *AZION* | Deliver. Accelerate. Protect. Office: +55 51 3083 8101 <callto:+555130838101> | Mobile: +55 51 <callto:+5551996209291>*99907 0554* -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAEM7gE2y%3DQHEJdbwUMbhmxDnY8%2BEHSVdUKUJtgbGTX2UgoWKSA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

