Re: Newbie : Object copy - weird error :-)

9 views
Skip to first unread message
Message has been deleted

Nelson Varela

unread,
Jun 26, 2018, 10:35:27 AM6/26/18
to Django users
The following class is kinda weird:
class DataModel(DataModel):

A class which inherits itself???



On Tuesday, June 26, 2018 at 11:31:24 AM UTC+2, mickae...@gmail.com 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(DataModel):

pass


class DataModelArchive(DataModel):
   
# 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

Reply all
Reply to author
Forward
Message has been deleted
0 new messages