2010/1/5 Tomasz Zieliński <tomasz.zielin...@pyconsultant.eu>:
>
>
> On 5 Sty, 18:16, pjmorse <flashesofpa...@gmail.com> wrote:
>>
>> This is done by looping over the list of languages and saving a
>> NewsTrans in each language. The source language is marked as already
>> translated, the other two are not (that is, they still need
>> translating).
>>
>> The problem is that this is done with ns.save() (where ns is a
>> NewsTransForm with the submitted data), and what's actually happening
>> is that one NewsTrans is created, then it is updated twice, ending in
>> the third language.
>>
>> I thought I could fix this with ns.save(force_insert=True) but that
>> throws errors instead: "save() got an unexpected keyword argument
>> 'force_insert'".
>>
>
> Take a look at this:
>
> http://docs.djangoproject.com/en/1.0/ref/models/instances/#how-django-knows-to-update-vs-insert
>
> - after first ns.save() 'ns' receives primary key (id), which in turn
> causes any subsequent
> ns.save() to UPDATE previously created row. I'm not sure why
> 'force_insert' is an unexpected
> argument, but it doesn't make sense anyway to use it.
> You can try ns.id = None; ns.save() instead.
>

This won't do it, because ns is a Form, not a Model object. Something
like this might work though:

obj = ns.save(commit=False)

for language in languages:
    obj.id = None
    obj.language = language
    obj.save()




Matthias
-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@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.


Reply via email to