Dimungkinkan untuk menggunakan prefetch_related
untuk mengambil tag, tetapi Anda harus menghindari properti 'tags', karena - seperti yang dikatakan jdi - ini adalah pengelola khusus daripada hubungan yang sebenarnya. Sebagai gantinya, Anda dapat melakukan:
actions = Action.objects.select_related('reoccurance').filter(complete=False)\
.prefetch_related('tagged_items__tag')
Sayangnya, action.tags.all
dalam kode template Anda tidak akan menggunakan prefetch, dan pada akhirnya akan melakukan kuerinya sendiri - jadi Anda juga perlu mengambil langkah yang agak sulit untuk melewati pengelola 'tag' di sana:
{% for tagged_item in action.tagged_items.all %}
<span>{{ tagged_item.tag }}</span>{% if not forloop.last %}, {% endif %}
{% endfor %}
(Ed.:jika Anda mendapatkan "'QuerySet' objek tidak memiliki atribut 'prefetch_related'", itu menunjukkan bahwa Anda menggunakan versi Django di bawah 1.4, di mana prefetch_related tidak tersedia.)