#summary Author entity model
#labels Phase-Design,Contents-Skeleton,Design-Model

_*Eventually, this topic should be populated by the output of*_ `pydoc`.

{{{
class Author(db.Model):
  """Author details for a specific Program.

  An Author entity participates in a number of relationships:

   person)  a required 1:1 relationship associating generic Person details
     with the Author role entity.

   works)  a many:many relationship with Works, stored in a separate
     WorksAuthors model.  See the WorksAuthors model class for details.

   contributor)  a 1:1 relationship associating a Contributor with generic
     Author details and capabilities.  This relation is implemented as the
     'contributor' back-reference Query of the Contributor model 'author'
     reference.

   reviewer)  a 1:1 relationship associating a Reviewer with generic
     Author details and capabilities.  This relation is implemented as the
     'reviewer' back-reference Query of the Reviewer model 'author' reference.

   admin)  a 1:1 relationship associating an Administrator with generic
     Author details and capabilities.  This relation is implemented as the
     'admin' back-reference Query of the Administrator model 'author'
     reference.
  """
  person = db.ReferenceProperty(reference_class=Person, required=True,
                                collection_name="author")
}}}

----
_Copyright 2008 Google Inc._
_This work is licensed under a_
[http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html Creative Commons Attribution 2.5 License].
[http://creativecommons.org/licenses/by/2.5/ http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png]
