Django查询中的PostgreSQL编程错误

Django查询中的PostgreSQL编程错误,django,postgresql,django-orm,django-database,django-annotate,Django,Postgresql,Django Orm,Django Database,Django Annotate,我有一个查询,如下所示,返回特定课程(学年)中特定学期(学期)特定班级的所有学生的成绩: 然后是另一个查询,该查询对成绩进行注释,以获得“总计”字段的总和 grades_ordered = grades.values('student')\ .annotate(total_mark=Sum('total')) \ .order_by('-total_mark') 起初一切正常,直到我从使用SQLite迁移到postgreSQL时,以下错误开始出现 错误: function su

我有一个查询,如下所示,返回特定课程(学年)中特定学期(学期)特定班级的所有学生的成绩:

然后是另一个查询,该查询对成绩进行注释,以获得“总计”字段的总和

grades_ordered = grades.values('student')\
    .annotate(total_mark=Sum('total')) \
    .order_by('-total_mark')
起初一切正常,直到我从使用SQLite迁移到postgreSQL时,以下错误开始出现

错误:

function sum(character varying) does not exist
LINE 1: SELECT "sms_grade"."student_id", SUM("sms_grade"."total") AS...
                                         ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
编辑: 这是我的模型

class Grade(models.Model):
    session = models.ForeignKey(Session, on_delete=models.CASCADE)
    term = models.CharField(choices=TERM, max_length=7)
    student = models.ForeignKey(Student, on_delete=models.CASCADE)
    subject = models.ForeignKey(Subject, on_delete=models.CASCADE)
    fca = models.CharField(max_length=10)
    sca = models.CharField(max_length=10)
    exam = models.CharField(max_length=10)
    total = models.CharField(max_length=3, blank=True, null=True)
    grade = models.CharField(choices=GRADE, max_length=1, blank=True, null=True)
    remark = models.CharField(max_length=50, blank=True, null=True)
如果您能提供任何帮助,我们将不胜感激


谢谢

将整数或十进制数字存储在文本/varchar字段中

total = models.Integer(max_length=3, blank=True, null=True)
看到这个了吗


另请阅读

请发布您的模型,看起来
总计
字段类型可能不支持算术运算。@mfrackowiak:我编辑了现在包含模型的帖子。虽然我在回答中明确指出了这一点,但您也可以检查这个问题谢谢@mfrackowiak;如您所述,
total
字段在我的例子中是CharField,它不支持算术运算
total = models.Integer(max_length=3, blank=True, null=True)