Có thể sử dụng prefetch_related
để truy xuất các thẻ, nhưng bạn cần tránh xung quanh thuộc tính 'tags', vì - như jdi nói - đây là một trình quản lý tùy chỉnh chứ không phải là một mối quan hệ thực sự. Thay vào đó, bạn có thể làm:
actions = Action.objects.select_related('reoccurance').filter(complete=False)\
.prefetch_related('tagged_items__tag')
Rất tiếc, action.tags.all
trong mã mẫu của bạn sẽ không sử dụng tìm nạp trước và sẽ kết thúc thực hiện truy vấn của riêng nó - vì vậy bạn cần thực hiện bước khá khó khăn là bỏ qua trình quản lý 'thẻ' ở đó:
{% for tagged_item in action.tagged_items.all %}
<span>{{ tagged_item.tag }}</span>{% if not forloop.last %}, {% endif %}
{% endfor %}
(Chỉnh sửa:nếu bạn đang nhận được đối tượng "'QuerySet' không có thuộc tính 'prefetch_osystem'", điều đó cho thấy rằng bạn đang sử dụng phiên bản Django dưới 1.4, nơi không có sẵn prefetch_osystem.)