Not sure exactly how to phrase my problem but I essentially want to loop through a list and show the first 4 matches only.
{% for reward_type in reward_types %}
You could have used slice if there isn't {% if category.reward_type == reward_type %}
.
i.e. if you have category_matching_rewards
which is list having category.reward_type == reward_type
then in template it can be done as
{%for category in category_matching_rewards|slice:"4" %}
Show catgory
....
{%endfor%}