title: Django multiple forms with modelchoicefield -> too many queries
body: <p>I have a table of forms of the same class which contains ModelChoiceField. And each form in one row has the same queryset for this field. Problem is that every time the form is rendered, it is a new query which increases unbearably the number of queries.</p>
  
  <p>The only solution I came up with is to construct the form on the go with js instead of letting django to render it itself. Is there a way to cache these querysets or somewhat preload it at once?</p>
  
  <pre><code>views.py:
  shift_table=[]
  for project in calendar_projects:
      shift_table.append([])
      project_branches = project.branches.all()
      for i, week in enumerate(month):
          for day in week:
              shift_table[-1].append(
                  CreateShiftCalendarForm(initial={'date': day}, branch_choices=project_branches))
  
  
  forms.py:
  CreateShiftCalendarForm(EditShiftCalendarForm):
  
      class Meta(ShiftForm.Meta):
          fields = ('project_branch', 'date') + ShiftForm.Meta.fields
          widgets = {'date': forms.HiddenInput(), 'length': forms.NumberInput(attrs={'step': 'any'}), 'project_branch': forms.Select()}
  
      def __init__(self, *args, **kwargs):
          branch_choices = kwargs.pop('branch_choices', ProjectBranch.objects.none())
          super(CreateShiftCalendarForm, self).__init__(*args, **kwargs)
  
          self.fields['project_branch'].queryset = branch_choices
          self.fields['project_branch'].empty_label = None
  </code></pre>