docs: def event_view(
      request,
      pk,
      template='swingtime/event_detail.html',
      event_form_class=forms.EventForm,
      recurrence_form_class=forms.MultipleOccurrenceForm
  ):
      '''
      View an ``Event`` instance and optionally update either the event or its
      occurrences.
  
      Context parameters:
  
      ``event``
          the event keyed by ``pk``
  
      ``event_form``
          a form object for updating the event
  
      ``recurrence_form``
          a form object for adding occurrences
      '''
      event = get_object_or_404(Event, pk=pk)
      event_form = recurrence_form = None
      if request.method == 'POST':
          if '_update' in request.POST:
              event_form = event_form_class(request.POST, instance=event)
              if event_form.is_valid():
                  event_form.save(event)
                  return http.HttpResponseRedirect(request.path)
          elif '_add' in request.POST:
              recurrence_form = recurrence_form_class(request.POST)
              if recurrence_form.is_valid():
                  recurrence_form.save(event)
                  return http.HttpResponseRedirect(request.path)
          else:
              return http.HttpResponseBadRequest('Bad Request')
  
      data = {
          'event': event,
          'event_form': event_form or event_form_class(instance=event),
          'recurrence_form': recurrence_form or recurrence_form_class(
              initial={'dtstart': datetime.now()}
          )
      }
      return render(request, template, data)