È possibile utilizzare prefetch_related
per recuperare i tag, ma devi aggirare la proprietà 'tags', poiché - come dice jdi - questo è un gestore personalizzato piuttosto che una vera relazione. Invece, puoi fare:
actions = Action.objects.select_related('reoccurance').filter(complete=False)\
.prefetch_related('tagged_items__tag')
Sfortunatamente, action.tags.all
nel tuo modello il codice non utilizzerà il prefetch e finirà per eseguire la propria query, quindi è necessario eseguire il passaggio piuttosto complicato di aggirare anche il gestore dei "tag":
{% for tagged_item in action.tagged_items.all %}
<span>{{ tagged_item.tag }}</span>{% if not forloop.last %}, {% endif %}
{% endfor %}
(Ed.:se stai ricevendo "'QuerySet' object has no attributo 'prefetch_related'", ciò suggerisce che sei su una versione di Django inferiore alla 1.4, dove prefetch_related non è disponibile.)