Вы можете сделать это, но это довольно «странно»:
from django.db.models import Case, IntegerField, Value, When
queryset.annotate(
score=Case(
*[When(user_id=k, then=Value(v)) for k,v in scores.items()]
default=None,
output_field=IntegerField(null=True)
)
).order_by('score')
Вероятно, лучше просто сохранить результаты в соответствующей модели User
(на которую ссылается user_id
) ).