Отображение пользовательских рейтингов для списка объектов django - PullRequest
1 голос
/ 22 апреля 2010

У меня есть шаблон, который представляет собой простой список объектов, и я хотел бы показать рейтинг текущего пользователя для каждого объекта рядом с этим объектом. Вот соответствующие модели:

class Problem(models.Model):
    question = models.TextField()
    answer = models.TextField()
    topic = models.ForeignKey(Topic)

class Attempt(models.Model):
    user = models.ForeignKey(User)
    problem = models.ForeignKey(Problem)
    confidence = models.CharField(max_length=10)
    date = models.DateTimeField(auto_now=True)

Таким образом, объекты являются «проблемами» (отображаются в списке так же, как их идентификаторы), а рейтинги - «конфиденциальными». И мой шаблон в настоящее время перечисляет проблемы для данной темы, и я хотел бы иметь уверенность текущего пользователя (если он существует) для каждой проблемы рядом с этой проблемой.

Любые идеи о том, как я могу запросить это и отправить его / показать в шаблоне? Заранее спасибо за помощь!

редактировать: я могу изменить модели при необходимости. Модель попыток предназначена только для этого, поэтому ее можно полностью заменить.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2010

Чтобы это работало в одном запросе, я думаю, что вам нужно начать запрос с модели Attempt.

Attempt.objects.select_related().filter(problem__topic=mytopic, user=request.user)

Это дает вам список попыток текущего пользователя по данной конкретной проблеме. Затем в вашем шаблоне вы можете повторить это:

{% for attempt in attempts %}
{{ attempt.problem.topic }}
{{ attempt.confidence }}
0 голосов
/ 22 апреля 2010

Нашел решение, используя небольшую модификацию этот ответ на аналогичный вопрос

...