Using a Subquery and OuterRef in a Django Annotation

I want to annotate all my price models with the normalized price in Dollars:

class FxRate(models.Model):
  
    date = models.DateField()
    nominal_currency_code = models.CharField( max_length=3)
    value = models.DecimalField(max_digits=20, decimal_places=8)
      
 class Price(models.Model):
    currency = models.CharField(max_length=3, default="BIF")
    price_value = models.DecimalField((max_digits=20, decimal_places=8)
    date = models.DateField()

So if today (date = 2021-03-23) the exchange rate of BIF against USD is 1900BIF/USD, I want to annotate all prices and add the price_value in USD. For that I have been trying this:

from django.db.models import OuterRef, Subquery, F
monthly_rate = FxRate.objects.filter(
        nominal_currency_code=OuterRef("currency"),
        date__year=OuterRef("date__year"),
        date__month=OuterRef("date__month")
        ) 
# it assumes that **currency, date** in the above code refers to the values from the Price model bellow
pp = Price.objects.all().annotate(dollars_prices=Subquery(monthly_rate.values("value")[0])*F("price_value"))

But whenever I run that code I’m faced with an error:

  ValueError: This queryset contains a reference to an outer query and may only be used in a subquery.

Does OuterRef uses objects with ForeignKeys only? What am I not getting well in the SubQueries ?

Hi!
You seem, if I understand correctly to make an update, and it is not possible by making an annotate

mybe you can see https://stackoverflow.com/questions/43770118/simple-subquery-with-outerref