title: Limit dropdown results in generic UpdateView
body: <p>Working on my first Django project! I have an UpdateView and I want to limit the dropdown results of program_code so it only shows items that the user owns. I think I have to pass kwargs to the view to limit the queryset but not sure where to begin or how to go about doing that. Any advice would be greatly appreciated.</p>
  
  <p>View:</p>
  
  <pre><code>class ContactsUpdateView(LoginRequiredMixin, UserPassesTestMixin, SuccessMessageMixin, UpdateView):
      model = Contact
      fields = ['first_name1', 'last_name1','address1','address2','city','province','postal_code','country','active_status','program_code']
      template_name = 'contacts/contacts_form.html'
      success_message = "Contact was updated successfully"
  
      def form_valid(self, form):
          form.instance.author = self.request.user
          return super().form_valid(form)
  
      def test_func(self):
          contact = self.get_object()
          if self.request.user == contact.author:
              return True
          return False
  </code></pre>
  
  <p>model:</p>
  
  <pre><code>class Contact(models.Model):
      first_name1 = models.CharField(max_length=100, verbose_name='First Name', null=True)
      last_name1 = models.CharField(max_length=100, verbose_name='Last Name', null=True)
      address1 = models.CharField(max_length=100, verbose_name='Address 1', null=True)
      address2 = models.CharField(max_length=100, verbose_name='Address 2', null=True, blank=True)
      city = models.CharField(max_length=100, verbose_name='City', null=True)
      province = models.CharField(max_length=2, choices=PROVINCE_CHOICES, default='Ontario', verbose_name='Province')
      postal_code = models.CharField(max_length=7, verbose_name='Postal Code', null=True)
      country = models.CharField(max_length=100, verbose_name='Country', null=True, default='Canada')
      date_posted = models.DateTimeField(default=timezone.now)
      author = models.ForeignKey(User, on_delete=models.CASCADE)
      active_status = models.BooleanField(default=True)
      program_code = models.ForeignKey(Program, on_delete=models.CASCADE)
  
      def __str__(self):
  
          return self.first_name1 + ' ' + self.last_name1
  
      def get_absolute_url(self):
  
          return reverse('contacts-home')
  </code></pre>
  
  <p>template form:</p>
  
  <pre><code>&lt;form method="POST"&gt;
          {% csrf_token %}
          &lt;fieldset class="form-group"&gt;
              &lt;legend class="border-bottom mb-2 mt-2"&gt;Update Contact&lt;/legend&gt;
              &lt;p&gt;Created by: {{ object.author }},  Last Updated: {{ object.date_posted }}&lt;/p&gt;
              {{ form|crispy }}
          &lt;/fieldset&gt;
          &lt;div class="form-group"&gt;
              &lt;button class="btn btn-info" type="submit"&gt;Update&lt;/button&gt;
  
              &lt;div class="mt-4"&gt;&lt;a class="btn btn-outline-danger btn-sm" href="{% url 'contacts-delete' object.id %}" role="button"&gt;Delete Contact&lt;/a&gt;&lt;/div&gt;
  
          &lt;/div&gt;
      &lt;/form&gt;
  </code></pre>