Note the double underscore(__ ) in 'category__name'. Using the double undertscore, you can order on a field from a related model.
If you look at the SQL.
SELECT"entities_hero"."id","entities_hero"."name",-- more fieldsFROM"entities_hero"INNERJOIN"entities_category"ON("entities_hero"."category_id"="entities_category"."id")ORDERBY"entities_category"."name"ASC,"entities_hero"."name"ASC