To list public presentations on CVs, Django-Vitae uses two models representing two different ideas. A “talk”, represented by Talk, reflects a single idea conveyed with a title. It can optionally also include other other elements related to that talk such as notes and slides. A “presentation”, represented by Presentation, reflects a specific public performance of a talk at a some location and at some time.

This structure allows multiple presentations of the same talk to be logically connected and can prevent multiple listings with the same title, for example, in the “Presentations” section of a C.V.

Talk Model

The Talk model has three required fields:

  • title
  • short_title
  • slug

The publication set for a given talk can be accessed with the presentations attribute of a Talk instance.

The Talk class contains a foreign key field, article_from_talk that connects a talk to an article. This may be useful to provide a link to the article on a page about the talk to make it clear where visitors can find the publication that resulted.

The Talk model also contains a convenience method, get_latest_presenation() that returns the Presentation instance of the talk that was most recently performed (using the presentation_date field).

Talk Views

Talk List: TalkListView

Display a list of all talks given in order of most recent presentation date.

Context object {{talk_list}}
Template 'cv/lists/talk_list.html'
URL r'^talks/$'
URL name 'talk_object_list'
MIME type text/html

Talk Detail: TalkDetailView

Display detailed information for a particular talk.

Context object {{talk}}
Template 'cv/details/talk_detail.html'
URL r'^talks/(?P<slug>[-\w]+)/$'
URL name 'talk_object_detail'
MIME type text/html


The Presentation model instances relate to a Talk instance through a foreign key. The Presentation model has three required fields in addition to the Talk foreign key:

  • presentation_date that represents when this presentation was “performed;” presentations are ordered by presentation date with the most recent presentation first
  • type represents the form of the presentation; choices are “Invited”, “Conference”, “Workshop”, and “Keynote”.
  • event contains the name of event or venue at which the presentation was given.

Django-Vitae assumes that presentations will be displayed in conjunction with talks and, therefore, not displayed on their own.