In addition, it seems like my patch works for sqlite and mysql, but will fail under postgres.
On Tue, May 20, 2008 at 3:09 PM, Ziling Zhao <[EMAIL PROTECTED]> wrote: > My fix was to simply set the parent's primary key attribute inside of th > child's data, which worked for all cases with the exception of when the > parent's primary key had the same name as the child's primary key. Upon the > loading of a model like that, i get the error "column name is not unique." > > I don't see why a parent model cannot have the same field name as a child > model. > > Is this a seperate bug? Maybe my approach towards solving the problem is > incorrect? > > Do I have a misunderstanding of OneToOneFields? E.g. they shouldn't share > pk field names (this makes sense to me)? > > > On Mon, May 19, 2008 at 2:52 PM, Ziling Zhao <[EMAIL PROTECTED]> wrote: > >> Well, the main problem with the parent table being saved independently of >> the children tables is that you could have a fixture that only had the >> children, seperate from the parents. So if you load that fixture, they would >> have no parents to associate to. >> >> I submitted a patch to my bug that seems to fix it in the deserialization >> part by setting the parents pk before converting it to an object. This >> should hopefully make it save/update correctly. >> >> >> On Sat, May 17, 2008 at 12:41 PM, AmanKow <[EMAIL PROTECTED]> wrote: >> >>> >>> On May 15, 6: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? >>> >>> No, what I'm suggesting is that the parent table is being saved, >>> independently of the child tables. Later, the children are saved. I >>> am suggesting that on load, after the parent tables are loaded, the >>> children be loaded and only the child tables be touched. >>> >>> BTW, in your item below, parent_ptr is the primary key of the child, >>> foreign keyed to the parent, implicitly created by using multitable >>> inheritance. Thus MTI is just a special case of one to one where the >>> one to one field is also the pk. >>> >>> On May 15, 6: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 >> > > > > -- > ~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 -~----------~----~----~----~------~----~------~--~---