я следующие модели:Как решать вопросы фильтрации в родственных моделей Джанго Стог
class Note(models.Model):
user = ForeignKey(User)
topic = CharField(max_length=20)
class Referral(models.Model):
recipient = ForeignKey(User, related_name=referral_rcvd)
giver = ForeignKey(User, related_name=referral_given)
about = CharField(max_length=20)
и следующие в search_indexes.py
:
class NoteIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.EdgeNgramField(document=True, use_template=True)
topic = indexes.CharField(model_attr='topic')
То, что я хочу видеть в моем шаблоне есть:
Search for: <topic>
Results:
<ul>
<topic> <topic.user.username> <topic.user.referral_rcvd.filter(about=topic)
</ul>
Работа в оболочке, так что это проще, это дает мне то, что я хочу:
from haystack.query import SearchQuerySet as SQS
from models import *
s = SQS().models(Note).auto_query('topic_name')
[i.object.user.referral_rcvd.filter(about=i.object.topic).count() for i in s.all()]
Но это не работает в шаблоне HTML:
{% for result in object_list %}
{{ result.object.user.referral_rcvd.filter(about=i.object.topic).count() }}
{% endfor %}
Если он работает в оболочке, как сделать его работу в шаблоне? Благодаря!