Dmitry, I understand what you are trying to do clearly, coming from a Java background myself.
But this is Python. Do it the Python way. On Wed, Aug 24, 2011 at 6:33 PM, ernando <dmitry.home...@gmail.com> wrote: > Hi Tom & Tundebabzy, > > I understood your idea & approach. But as I've mentioned - I receive > the model from the 3rd party service & want to save it. As I have > experience with Hibernate - it provides such features. That's why I'm > a little bit frustrated with python approach. > > BR, > Dmitry > > On Aug 24, 6:39 pm, Tundebabzy <tundeba...@gmail.com> wrote: > > On Aug 24, 3:36 pm, Tom Evans <tevans...@googlemail.com> wrote: > > > > > > > > > > > > > > > > > > > > > On Tue, Aug 23, 2011 at 11:28 PM, ernando <dmitry.home...@gmail.com> > wrote: > > > > Hi all, > > > > > > maybe it's newbie question but I wasn't able to find clear answer/ > > > > solution on it. > > > > > > For example, we have the followingmodels: > > > > > > class A(models.Model): > > > > id =models.AutoField(primary_key=True) > > > > title =models.CharField(max_length=30) > > > > > > class B(models.Model): > > > > id =models.AutoField(primary_key=True) > > > > title =models.CharField(max_length=30) > > > > aItems =models.OneToOneField(A) > > > > > > And try tosavethem in the following way: > > > > > > a = A(title="123") > > > > b = B(title="333", aItems = a) > > > > b.save() > > > > > > This code runs with the error: (1364, "Field 'aItems_id' doesn't have > > > > a default value") > > > > if I firstlysavea object - everything goes smoothly. So, the > > > > question is - should we alwayssaveall related objects manually? > > > > According to django docs we have to create object at first. But > that's > > > > now always convenient - e.g. I receive full model from the 3rd part > > > > service and want tosaveit into DB withonecalland not do it for > > > > each item. > > > > > > Regards, > > > > Dmitry > > > > > Only objects that exist in the database can be related to each other. > > > If you have a function which accepts an model instance, it should make > > > it clear that it is an error to pass it an object that does not exist > > > in the database. You really should not be overridingsave() tosave > > > related objects that do not exist in the database. > > > > > Mostly these kind of problems go away if you start using the create > > > and get_or_create helpers on the model's manager, eg I would never > > > have this in my code: > > > > > a = A(title="123") > > > b = B(title="333", aItems = a) > > > b.save() > > > > > it would look like this: > > > > > a, created = A.objects.get_or_create(title='123') > > > b = B.objects.create(title='333', aitems=a) > > > > > Cheers > > > > > Tom > > > > +1 > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-users@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > -- Odeyemi 'Kayode O. http://www.sinati.com. t: @charyorde -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.