I found something that I find interesting with the deserialization.

If you create a child class and do not define a OneToOneField yourself, the
deserialized output has an extra field, "parent_ptr".
i.e.
  {
    "pk": 2,
    "model": "first.child",
    "fields": {
      "parent_ptr": 2,
      "name": "child1",
      "number": 1
    }
  }

However, if a OneToOneField is defined, that "parent_ptr" is lost and the
only fields that remain are "name" and "number".

Is this expected behaivior?


On Thu, May 15, 2008 at 3:15 PM, Ziling Zhao <[EMAIL PROTECTED]> wrote:

> So, are you suggesting that on fixture loading that parents should *not* be
> saved?
>
> Would this possibly allow you to load fixtures that don't fit in your
> model? E.g. children without parents?
>
>  On Sat, May 10, 2008 at 10:24 AM, AmanKow <[EMAIL PROTECTED]> wrote:
>
>>
>> Above, I said:
>> > I notice that child instances have an undocumented save_base method,
>> > which I assume is called from the child's save.  I wonder if it might
>> > not be useful to have some way (r.save(exclude_parent=True) or some
>> > such thing) in order to save the child record only.
>>
>> But I didn't explain why I thought something like this might be useful
>> for some types of processing and applicable to the loaddata issue.
>>
>> For hooking up children to existing parents it would be simpler and
>> more efficient:
>> >>> p = Place(name="Lee's Tavern", address="Staten Island")
>> >>> p.save()
>> >>> r = Restaurant(serves_pizza=True, serves_hot_dogs=False, pk=p.pk)
>> >>> r.save(child_only=True)
>>
>> You'd have to be a bit cautious here, as r will still have the default
>> values for the parent fields.  If you are going to continue to use r,
>> and access the parent fields in any way, the following would be
>> appropriate after the save:
>> >>> r = Restaurant.objects.get(pk=r.pk)
>>
>> If indeed there is some sort of transactional issue in loaddata,
>> always specifying that only the child be saved (it wouldn't hurt to
>> specify it everywhere loaddata saves as it would be ignored where it
>> wasn't pertinent) might just be the fix.
>>
>> Wayne
>> >>
>>
>
>
> --
> ~Ziling Zhao
>



-- 
~Ziling Zhao

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to