Hello  Julio,

Ok, I see.

I try to create a way to archive (copy) the same object instance on an
other DataBase.

I followed this advice : # https://stackoverflow.com/
questions/21699707/python-how-to-copy-all-attibutes-from-
base-class-to-derived-one


2018-06-27 14:56 GMT+02:00 Julio Biason <[email protected]>:

> 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_f
>> ields_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/ms
>> gid/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 a topic in the
> Google Groups "Django users" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/django-users/gHKY0BAcTi4/unsubscribe.
> To unsubscribe from this group and all its topics, 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
> <https://groups.google.com/d/msgid/django-users/CAEM7gE2y%3DQHEJdbwUMbhmxDnY8%2BEHSVdUKUJtgbGTX2UgoWKSA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAPLHwtwGKQm_%3DMaft4vNnFQjf00Cmyw8UkLdq6W_aAmi5KVNgQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to