Как объединить данные двух наборов запросов?
У меня есть Модель Poller
и Модель Vote
, которые хранят голоса, сделанные пользователем для определенного опросника. Дополнительно я использую эту модель стороннего пакета для обработки комментариев, сделанных к Poller
. Теперь я хочу прикрепить к каждому комментарию информацию о том, какой голос выбрал создатель комментария (комментарии можно делать только если пользователь уже проголосовал).
Итак, в моем представлении получилось следующее:
def single_poller(request, poller_id):
"""
renders a specific poller with prepopulated meta according to previous
user interaction, e.g. votes and likes
"""
# Retrieve the item via get
poller = Poller.objects.get(poller_id=poller_id)
# Get votes and users for rendering comments with vote 1 or vote 2
votes = Vote.objects.filter(
poller=poller,
user__in=poller.poller_comments.all().values('user')
)
Модель голосов
class Vote(models.Model):
poller = models.ForeignKey(Poller, on_delete=models.CASCADE, related_name='vote')
user = models.ForeignKey(Account, on_delete=models.CASCADE)
created_on = models.DateTimeField(auto_now_add=True)
poller_choice_one_vote = models.BooleanField(default=False)
poller_choice_two_vote = models.BooleanField(default=False)
Шаблон
<div class="comments-wrapper">
{% get_comment_list for poller as comment_list %}
{% for comment in comment_list %}
<div class="comment-box">
<div class="comment-meta">{{ comment.user_name }}, {{ comment.submit_date }}</div>
<div class="comment-body">{{ comment.comment }}</div>
</div>
{% endfor %}
</div>
Как мне теперь связать информацию набора голосов с набором комментариев, чтобы я мог вывести для каждого комментария, голосовал ли комментатор за poller_choice_one_vote
или poller_choice_two_vote
?