0
我有一个Django查询,我想组测试尝试通过为test_id次数并获得每次测试之间的平均值。Django查询:你可以嵌套注释吗?
的test_attempts表记录每个测试尝试在用户在给定的测试。我想找到每个测试
这里尝试的平均数量是我的查询:
average = TestAttempts.objects.values('test_id').annotate(Avg(Count('test_id'))).filter(user_id=id)
我收到以下错误: “伯爵”对象有没有属性“分裂”
有没有办法处理这个,而不必写入原始的SQL?
UPDATE: 这里是TestAttemt模型
class TestAttempts(models.Model):
id = models.IntegerField(primary_key=True)
user_id = models.IntegerField()
test_id = models.IntegerField()
test_grade = models.DecimalField(max_digits=6, decimal_places=1)
grade_date_time = models.DateTimeField()
start_time = models.DateTimeField()
seconds_taken = models.IntegerField()
taking_for_ce_credit = models.IntegerField()
ip_address = models.CharField(max_length=25L)
grade_points = models.DecimalField(null=True, max_digits=4, decimal_places=1, blank=True)
passing_percentage = models.IntegerField(null=True, blank=True)
passed = models.IntegerField()
class Meta:
db_table = 'test_attempts'
这正是我正在寻找的,再次感谢您的帮助,我花了大量时间翻阅文档,没有运气 – xXPhenom22Xx 2013-04-07 20:40:16
TestAttempt表与测试表没有PK或关系。当我尝试使用第二个选项,因为它通过为test_id看起来组第一,然后计数和平均值我得到一个SQL错误? (1064,“您的SQL语法错误;检查对应于你的MySQL服务器版本由于使用接近”正确的语法手册(SELECT'test_attempts'.'test_id' AS'test_id',COUNT( 'test_attempts'.'id')”第1" 行) – xXPhenom22Xx 2013-04-07 21:55:33
这感觉就像在Django的错误:(你能不能把你的模型,你的问题? – 2013-04-07 22:00:44