title: What could cause django's FilteredSelectMultiple right half not to display 'initial' values after page reload (Ctrl R)?
body: <p>I was under the impression that if I do something like this:</p>
  <pre><code>self.fields[&quot;xxx&quot;].initial = termin.getXxx.all()
  </code></pre>
  <p>then the widget's right half will display the value of <code>termin.getXxx.all()</code></p>
  <p>And it is true, <em>almost</em> always. Except if I reload the page using 'Ctrl R' because then I get the right half completely empty, even though <code>self.fields[&quot;xxx&quot;].initial</code>  does contain the required value. What is so special about 'Ctrl R' that breaks the widget?</p>
  <p>Below the widget's code:</p>
  <pre><code>xxx = forms.ModelMultipleChoiceField(
      queryset=Person.objects.none(),
      widget=OurFilteredSelectMultiple(&quot;XXX&quot;, is_stacked=False),
      required=False,
  )
  
  class OurFilteredSelectMultiple(FilteredSelectMultiple):
  
  
      class Media:
          js = (
              &quot;/jsi18n/&quot;,
              &quot;/static/core/admin/js/our_filtered_multi_select_widget.js&quot;,
          )
          css = {&quot;all&quot;: (&quot;/static/core/admin/css/our_filtered_multi_select_widget.css&quot;,)}
  
      def render(self, name, value, attrs, renderer):
          &quot;&quot;&quot;! Adding the id of the field to an hidden input.
          @detail These widgets HTML-elements get their id based on the id of the field.
          In order to use it in JS we set up this hidden parameter and get the value inside js.
          &quot;&quot;&quot;
          identifier = &quot;multiple_select_id&quot;
          ret = super().render(name, value, attrs, renderer)
          ret += f'&lt;input type=&quot;hidden&quot; id=&quot;{identifier}&quot; value=&quot;{attrs.get(&quot;id&quot;)}&quot;&gt;'
          return mark_safe(ret)
  </code></pre>