Hi. I am new to Google App Engine so excuse what might be a question
with an easy answer.
I am trying to understand the 'best' way to handle a situation in my
application where I have a many-to-one relationship created with a
ReferenceProperty. When I delete the 'one' side of the relationship
(the one without the ReferenceProperty) I am left with a lot of
invalid references in the Many side of the relationship (the one
without the relationship).
class Context(db.Model):
label = db.StringProperty()
class Action(db.Model):
label = db.StringProperty()
context = db.ReferenceProperty(Context, collection_name='actions')
status = db.IntegerProperty()
The documentation advises that where a ReferenceProperty might have a
key that is invalid, db.get() should be used on the key to determine
if he key is valid. In a situation where I am trying to display many
results in a webpage, I am not sure how this would look. Can (should)
this be tested inside a Template during row output? If not, however
should it be handled prior to calling the template?
actions = db.GqlQuery('SELECT * FROM Action').all()
for action in actions:
#Not sure
rendered_template = template.render(template_path,
{'actions_to_display':notsure})
At the moment I am cleaning up my incorrect ReferenceProperty values
as I go, but this does not look efficient either. It does have the
advantage of being a rare occurence:
referring_actions = context_to_delete.actions
#update refering actions
for referring_action in referring_actions:
referring_action.context = None
referring_action.save()
#Delete Context
context_to_delete.delete()
How are other people dealing with this MANY-TO-ONE, deletion of the
ONE scenario?
Sorry if this has been asked before, I checked the FAQ, recipe book
and performed some searches on the Group.
Thanks for any help.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---