Use key().name() instead of link_id
This is now possible because key_name is constructed purely from the
key fields of an entity. It is not sufficient to use just link_id,
that works only for single-scoped entities (e.g., those that either
do not have a scope, or that have a scope which itself does not have
a scope). It would break if there was an entity that has a scoped
scope (it would only include the scope's link_id in the url, which
made it impossible to look up the scope as we missed the link_id of
the scope's scope).
Patch by: Sverre Rabbelier
TEMPLATE NAMESPACESTemplates are placed in a "namespace" subdirectory in the templates directory,since the templates directory will be added to the Django templates searchpath. This allows other packages to extend existing templates without "hiding"the original template. For example, a template in another Melange applicationcan extend a template in the SoC framework like this: {% extends 'soc/some_existing_template.html' %}without "hiding" the some_existing_template.html for other uses, even if thederived template is also named some_existing_template.html.So, please do not put any templates in this soc/templates directory, but onlyplace them in the soc/templates/soc "namespace" subdirectory.Different Melange applications should also follow this pattern, to promotesharing of templates between applications as well. For exmample, the GSoCMelange application should place its templates in gsoc/templates/gsoc.MODEL/VIEW TEMPLATE NAMINGView templates are usually named some_view.html for a corresponding someView()function and SomeViewForm form class. Since SomeView is likely to be a commonView name for multiple Models, Model-specific templates should be placed insoc/<model>/<view> sub-directories.