title: Can't pass 'slug' field into URL via generic class view
body: <p>I have two models for Publications and Employees:</p>
  
  <pre><code>class Publication(models.Model):
      BOOK_CHAPTER = 1
      ARTICLE = 2
      PUBLICATION_CHOICES = (
          (BOOK_CHAPTER, 'Book chapter'),
          (ARTICLE, 'Article'),
      )
      publication_type = models.IntegerField(choices=PUBLICATION_CHOICES)
      article_title = models.CharField(max_length=250, help_text='Limited to 250 characters. May also be used for book chapter titles.')
      slug = models.SlugField(help_text='Suggested value automatically generated from title.')
      primary_author = models.ForeignKey('Employee', limit_choices_to={'employee_type': 1}, help_text='Most of the time, this will be the faculty member to whom the publication is tied.')
      authors = models.CharField(max_length=250, help_text='Limited to 250 characters. Please adhere to accepted format for style. Include current employee in this list.', blank=True)
      journal_name = models.CharField(max_length=250, help_text='Limited to 250 characters. May also be used for book titles.')
      journal_volume = models.IntegerField(max_length=3, blank=True, null=True)
  journal_issue = models.IntegerField(max_length=3, blank=True, null=True)
      journal_pub_date = models.DateField(help_text='To specify only the year, simply type in the date using the following format: 2011-01-01.')
      journal_page_range = models.CharField(max_length=50, help_text='Limited to 50 characters.', blank=True)
      editors = models.CharField(max_length=250, help_text='Limited to 250 characters.', blank=True)
      publisher = models.CharField(max_length=250, help_text='Limited to 250 characters.', blank=True)
      location_of_publication = models.CharField(max_length=250, help_text='Limited to 250 characters.', blank=True)
      abstract = models.TextField(blank=True)
      notes = models.TextField(blank=True)
      external_link = models.URLField(blank=True, help_text='Link to the article on the publication\'s website.')
      downloadable_version = models.ForeignKey(Document, blank=True, null=True)
  </code></pre>
  
  <p>And:</p>
  
  <pre><code>class Employee(models.Model):
      FACULTY = 1
      ADMINISTRATIVE_SUPPORT = 2
      RESEARCH_SUPPORT = 3
      POSTDOCS = 4
      EMPLOYEE_CHOICES = (
          (FACULTY, 'Faculty'),
          (ADMINISTRATIVE_SUPPORT, 'Administrative support'),
          (RESEARCH_SUPPORT, 'Research support'),
          (POSTDOCS, 'Postdocs'),
      )
      user = models.ForeignKey(User, unique=True, help_text="Select a user if this employee is able to update their own profile information.", blank=True, null=True)
  
      first_name = models.CharField(max_length=200)
      middle_name = models.CharField(max_length=50, help_text="Limited to 50 characters.", blank=True)
      last_name = models.CharField(max_length=200)
  
      slug = models.SlugField(unique=True, help_text='Will populate from a combination of the first, middle and last names.')
  
      title = models.CharField(max_length=200, help_text="Limited to 200 characters.")
      previous_position = models.CharField(max_length=350, help_text="Limited to 350 characters.", blank=True)
  
      email = models.EmailField()
      office_phone_number = PhoneNumberField(null=True, blank=True)
      mobile_phone_number = PhoneNumberField(null=True, blank=True)
      office = models.CharField(max_length=50, help_text="Your office number or room name. Limited to 50 characters.", blank=True)
      website = models.URLField(blank=True)
  
      job_description = models.TextField(help_text='A description of your work or research. No HTML is allowed. If formatting is needed, please use &lt;a href="http://daringfireball.net/projects/markdown/syntax"&gt;Markdown syntax&lt;/a&gt;.', blank=True)
      job_description_html = models.TextField(blank=True, editable=False)
  
      job_description_summary = models.CharField(max_length=250, help_text="A brief summary of your work or research. Limited to 250 characters.")
  
      is_currently_employed = models.BooleanField(default=True)
      related_links = generic.GenericRelation(RelatedLink, blank=True)
      employee_type = models.IntegerField(choices=EMPLOYEE_CHOICES)
  
      photo = models.ImageField(upload_to='images/profiles/mugshots', blank=True)
      lead_image = models.ImageField(upload_to='images/profiles/graphics', blank=True)
  
      resume_or_cv = models.ForeignKey(Document, blank=True, null=True)
  
      sites = models.ManyToManyField(Site)
  </code></pre>
  
  <p>I'd like to have a view to display all publications for an employee. Here's the view I'm working with now:</p>
  
  <pre><code>from django.shortcuts import get_object_or_404
  from django.views.generic import ListView
  from cms.employees.models import Employee, Publication
  
  class EmployeePublicationsListView(ListView):
  
      context_object_name = "publication_list"
      template_name = "employees/publications_by_employee.html",
  
      def get_queryset(self):
          self.primary_author = get_object_or_404(Employee, slug__iexact=self.args[0])
          return Publication.objects.filter(primary_author=self.primary_author)
  
      def get_context_data(self, **kwargs):
          context = super(EmployeePublicationsListView, self).get_context_data(**kwargs)
          context['primary_author'] = self.primary_author
          return context
  </code></pre>
  
  <p>Here's the URL pattern I'm using currently where I'm passing the slug from the Employee model into the URL for a list of all publications by that employee:</p>
  
  <pre><code>from django.conf.urls.defaults import patterns, include, url
  from cms.employees.models import Employee, Publication
  from django.views.generic import ListView, DetailView
  from cms.employees.views import EmployeePublicationsListView, EmployeeMentionsListView
  
  urlpatterns = patterns('',
      (r'^(?P&lt;slug&gt;[-\w]+)/publications/$', EmployeePublicationsListView.as_view()),
  
  )
  </code></pre>
  
  <p>But I'm getting a IndexError at /employees/joe-reporter/publications/ for tuple index out of range. Here's the traceback:</p>
  
  <pre><code>Environment:
  
  
  Request Method: GET
  Request URL: http://127.0.0.1:8000/employees/joe-reporter/publications/
  
  Django Version: 1.3
  Python Version: 2.6.1
  Installed Applications:
  ['django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.sites',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'django.contrib.flatpages',
   'django.contrib.admin',
   'django.contrib.admindocs',
   'django.contrib.sitemaps',
   'django.contrib.humanize',
   'django.contrib.redirects',
   'django.contrib.webdesign',
   'cms.news',
   'cms.media',
   'cms.categories',
   'cms.related_links',
   'cms.employees',
   'cms.static_media',
   'cms.places',
   'cms.events',
   'cms.jobs',
   'cms.press',
   'cms.topics',
   'cms.featured',
   'tagging',
   'template_utils',
   'contact_form',
   'cms.research',
   'shorturls']
  Installed Middleware:
  ('django.middleware.common.CommonMiddleware',
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.csrf.CsrfViewMiddleware',
   'django.contrib.auth.middleware.AuthenticationMiddleware',
   'django.contrib.messages.middleware.MessageMiddleware',
   'django.contrib.redirects.middleware.RedirectFallbackMiddleware')
  
  
  Traceback:
  File "/Library/Python/2.6/site-packages/django/core/handlers/base.py" in get_response
    111.                         response = callback(request, *callback_args, **callback_kwargs)
  File "/Library/Python/2.6/site-packages/django/views/generic/base.py" in view
    47.             return self.dispatch(request, *args, **kwargs)
  File "/Library/Python/2.6/site-packages/django/views/generic/base.py" in dispatch
    68.         return handler(request, *args, **kwargs)
  File "/Library/Python/2.6/site-packages/django/views/generic/list.py" in get
    116.         self.object_list = self.get_queryset()
  File "/Users/pbeeson/Sites/django_projects/cms/../cms/employees/views.py" in get_queryset
    16.         self.primary_author = get_object_or_404(Employee, slug__iexact=self.args[0])
  
  Exception Type: IndexError at /employees/joe-reporter/publications/
  Exception Value: tuple index out of range
  </code></pre>
  
  <p>What am I doing wrong?</p>