title: Django: annotate queryset with string
body: <p>I need to annotate a queryset with strings from dictionary. The dictionary keys come from the model's field called 'field_name'.</p>
  <p>I can easily annotate with strings from dictionary using the Value operator:</p>
  <pre><code>q = MyModel.objects.annotate(
    new_value=Value(value_dict[key], output_field=CharField()))
  </code></pre>
  <p>And I can get the field value from the model with F expression:</p>
  <pre><code>q = MyModel.objects.annotate(new_value=F('field_name'))
  </code></pre>
  <p>Putting them together however fails:</p>
  <pre><code># doesn't work, throws
  # KeyError: F(field_name)    
  q = MyModel.objects.annotate(
    new_value=Value(value_dict[F('field_name')],
                    output_field=CharField()))
  </code></pre>
  <p>Found <a href="https://stackoverflow.com/questions/48186782/combining-django-f-value-and-a-dict-to-annotate-a-queryset%5D">this</a> question, which afaiu tries to do the same thing but that solution throws another error:</p>
  <pre><code>Unsupported lookup 'field_name' for CharField or join on the field not permitted.
  </code></pre>
  <p>I feel like I'm missing something really obvious here but I just can't get it to work. Any help appreciated.</p>