﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
10247	problem with model constructor override	azymnis	nobody	"I am in a situation where I want to create a model instance from another object. For this reason, I am trying to override the Model constructor so that it can take an object as an argument. However, this does not seem to work properly, since after I save, I cannot access the data with the object manager. Here is an example. Suppose my models.py code is:

{{{
from django.db import models

class Person(models.Model):
     first_name = models.CharField(max_length=40)
     last_name = models.CharField(max_length=40)
 
     def __init__(self,datadict):
         models.Model.__init__(self,
             first_name = datadict['first_name'],
             last_name = datadict['last_name'])
}}}

Then, when this is what happens when I use this:

{{{
>>>from cddbase.models import Person
>>>data_dict = {'first_name': 'Rob', 'last_name': 'Smith'}
>>>person = Person(data_dict)
>>>person.save()
>>>Person.objects.all()
[]
}}}

So basically the Person.save() method is not working... However, the Person class is created correctly. One thing that I noticed is that the SQL seems to be wrong. It issues and UPDATE rather than an INSERT command, even though the row in the table does not exist.

Any ideas what I can do?

Thanks,
Argyris

"		closed	Database layer (models, ORM)	1.0		invalid			Unreviewed	0	0	0	0	0	0
