Minor fixes needed for generic key name
We no longer try to retreive an entity when there are unset fields.
This sort of makes 'getIfFields' obsolete, since we check if fields
now anyway. This is needed because getKeyFieldsFromDict expects the
fields to be set.
Also a minor fix in a Django template so that the generic 'edit' page
has a working delete button again.
trunk/app should contain only the files needed for the actual Google AppEngine application "image". Support code that is not part of the applicationimage belongs elsewhere, such as in trunk/scripts, for example.= THIRD PARTY CODE =Third-party code that is *not* part of the application image (the Google AppEngine SDK in trunk/thirdparty/google_appengine, for example) belongs intrunk/thirdparty (see also trunk/thirdparty/README).Third-party code that is part of the application image is placed in a packagesubdirectory in trunk/app, such as trunk/app/django, for example.If the third-party package is a single Python source file, place the code intrunk/app/<package>/__init__.py, so that it can simply be imported using,for example:import feedparser(The trunk/app/feedparser package is a good example of this approach.)== THIRD PARTY LICENSES ==Third-party code must also include a license text file, named LICENSE orCOPYING, in the package subdirectory. If the third-party package subdirectoryis maintained automatically with a tool such as svn_load_dirs.pl (whichremoves files, such as license text files, that were added later to the"target" directory), place the license text file in the trunk/app directoryand add the package name as a suffix (LICENSE.django is an example of thiscase).