Ответ 1
В моем коде оба они выполняются, если в списке друзей есть только один элемент. Вот тест, который вы можете запустить в оболочке, где, возможно, вы можете выяснить, что не работает:
$ ./manage.py shell
>>> from django import template
>>> t = template.Template("""{% for f in friendslist %}
{% if forloop.first %}
First of the loop
{% endif %}
{{ f }}
{% if forloop.last %}
Last of the loop
{% endif %}
{% endfor %}""")
>>> c = template.Context({'friendslist' : ['one element',]})
>>> t.render(c)
First of the loop
one element
Last of the loop