Вы можете использовать extra
для извлечения дополнительных вычисленных столбцов и сортировки по ним:
MyModel.objects.filter(post_date__lt=#date#)
.extra(select={'custom_order': "x*y/z"}).order_by('custom_order')
Проблема с этим подходом заключается в том, что вы пишете sql, поэтому он не всегда переносим между базами данных (хотя, для приведенного вами примера, эту проблему избегают, поскольку это простой расчет)
В противном случае вы можете выполнить сортировку на чистом питоне:
sorted_models = sorted(MyModel.objects.filter(post_date__lt=#date#)
, key=lambda my_model:my_model.x*my_model.y/my_model.z))