Django queryset: how to filter a RawSQL annotation based on a queryset field

Viewed 3650

Is it possible to do something like this in Django:

MyModel.objects.annotate(
    val=RawSQL(
        "SELECT COUNT(*) FROM another_model_table where some_field= %s",
            (a_field_from_MyModel)
        )
    )

Thanks!

1 Answers

You can do something like this:

MyModel.objects.annotate(
    val=RawSQL(
        """SELECT COUNT(*) FROM another_model_table 
            where some_field=myapp_mymodel.some_field""",
    )
)
Related