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
--
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/42c0ac75-5255-4573-95cc-097f8b61fe17%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.