2010-04-22 45 views
1

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

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显示在列表中)和评级是“可信度”。我的模板当前列出了给定主题的问题,我想让当前用户对该问题旁边的每个问题有信心(如果存在)。

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

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

回答

0

找到一个解决方案,使用this answer稍微修改一个类似的问题。

0

要使这项工作在单个查询中,我认为您需要从Attempt模型开始您的查询。

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

这给你一个当前用户在这个特定问题上的尝试列表。然后在你的模板中,您可以通过这个迭代:

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

我觉得您的查询给了我尝试对当前用户对这一特定主题的列表,但也将是主题中的问题,在没有相关尝试,我也需要列出这些。 – Chris 2010-04-22 13:39:19

相关问题