Thank you for idea about initial!
code starting at line 803 in google.appengine.ext.db.djangoforms is from
save() method.
'continue' statement there means that if you are editing data and key_name
passed, form processor must not try to change key_name in db, 'cause it's
impossible :)
So, my question -- is it right behaviour? Or may be developers forget, that
the need to fill field by real data from db?...
On Wed, Nov 26, 2008 at 7:36 PM, Jesaja Everling <[EMAIL PROTECTED]>wrote:
> You are right.
> I have tried, and it behaves the same way for me.
> You can work around this issue by passing the key_name as initial data
> to your form:
>
> form = TestForm(instance = entry, initial={'key_name':
> entry.key().name()})
>
> It seems this is on purpose, the relevant code starts at line 803 in
> google.appengine.ext.db.djangoforms:
>
> if instance is None:
> instance = opts.model(**converted_data)
> self.instance = instance
> else:
> for name, value in converted_data.iteritems():
> if name == 'key_name':
> continue
> setattr(instance, name, value)
>
> Maybe the field should rather be removed from the form, then.
>
> Best Regards,
>
> Jesaja Everling
>
>
> On Wed, Nov 26, 2008 at 10:35 AM, Denya <[EMAIL PROTECTED]> wrote:
> > No, i mean a little bit another thing.
> >
> > When i open page with form and want to edit some data (it means that i
> > create form by passing db entity instance) the input field key_name
> appears,
> > but it is empty (in db it's not empty)
> >
> > I understand, that i can't edit this. But i want this to be not empty
> when i
> > show edit form!
> >
> > On Tue, Nov 25, 2008 at 6:47 PM, Jesaja Everling <[EMAIL PROTECTED]>
> > wrote:
> >>
> >> Hi Denis!
> >>
> >> Once you have an entity with a key_name, you cannot change the key_name.
> >> That is the reason that the form doesn't use this field when using it
> >> to change an entity.
> >> If you want to hide it from an editing-form, you can either do so in
> >> template logik by passing a variable like "change=True", or you can
> >> make another form definition that excludes the field.
> >> Do I understand you correctly that the key_name field doesn't appear
> >> when you are editing an entity?
> >>
> >> would have to create a separate form for editing
> >>
> >> On Tue, Nov 25, 2008 at 7:33 AM, Denis Moskalets <[EMAIL PROTECTED]>
> >> wrote:
> >> >
> >> > ext/db/djangoforms.py contains interesting description for some class:
> >> >
> >> > If you define a form field named 'key_name' it will be treated
> >> > specially and will be used as the value for the key_name parameter
> >> > to the Model constructor. This allows you to create instances with
> >> > named keys. The 'key_name' field will be ignored when updating an
> >> > instance (although it will still be shown on the form).
> >> >
> >> > I've tried this. It's really works, key_name field appears. key_name
> >> > properly saved into DB. It's really cool!
> >> >
> >> > But there only little problem. "The 'key_name' field will be ignored
> >> > when updating an instance (__although it will still be shown on the
> >> > form__)".
> >> > key_name field doesn't appear at form, when you trying to edit data.
> >> > I've read SDK code, and really... there nothing about filling key_name
> >> > by data.
> >> > In SDK source code, 'key_name' appears only in save() method.
> >> >
> >> > Is it really undocumented feature, that doesn't completely realised,
> >> > or it is bug?
> >> >
> >> > >
> >> >
> >>
> >>
> >>
> >> --
> >> o
> >> L_/
> >> OL
> >> This is Schäuble. Copy Schäuble into your signature to help him on his
> >> way to Überwachungsstaat.
> >>
> >>
> >
> >
> > >
> >
>
>
>
> --
> o
> L_/
> OL
> This is Schäuble. Copy Schäuble into your signature to help him on his
> way to Überwachungsstaat.
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---