显示django对象列表的用户评级

时间:2010-04-22 10:03:29

标签: django django-models django-templates

我有一个模板,它只是一个简单的对象列表,我想显示当前用户对该对象旁边每个对象的评级。以下是相关模型:

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)

因此,对象是'问题'(在列表中显示为ID),评级为'置信度'。我的模板目前列出了给定主题的问题,我希望当前用户对该问题旁边的每个问题都有信心(如果存在)。

关于如何查询并将其发送到/在模板中显示的任何想法?在此先感谢您的帮助!

编辑:如有必要,我可以改变模型。尝试模型仅适用于此,因此可以完全替换。

2 个答案:

答案 0 :(得分:0)

使用this answer略微修改类似问题找到解决方案。

答案 1 :(得分:0)

要在单个查询中完成此工作,我认为您需要从Attempt模型开始查询。

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

这将为您提供当前用户对此特定问题的尝试列表。然后在您的模板中,您可以遍历:

{% for attempt in attempts %}
{{ attempt.problem.topic }}
{{ attempt.confidence }}