我有一个简单的查询集,它使用以下模型:
class question(models.Model):
question_id = models.AutoField(primary_key=True) # Field name made lowercase.
question = models.TextField() # Field name made lowercase.
type = models.IntegerField() # Field name made lowercase.
difficulty = models.DecimalField(max_digits=12, decimal_places=10)查询集定义为:
...
theta=10
q=question.object.filter(type=1).order_by(abs('difficulty'-theta))我收到TypeError:无法连接'str‘和'int’对象
等效的SQL可以工作。但是,如果可以的话,我想使用标准的django ORM。
select * from quiz_question where type=1 order by abs(difficulty-10)我尝试过使用extra()方法。具体地说,使用select参数指定等式,使用order_by参数进行排序。
...
theta=10
q=question.object.filter(type=1).extra(select={'diff': abs('difficulty-10')}).extra(order_by=['diff'])我得到一个错误的操作数类型。有什么好主意吗?
发布于 2013-02-26 09:24:25
q = question.object.filter(type=1).extra(
select={"diff": "abs(difficulty-10)"}).order_by("diff")https://stackoverflow.com/questions/15079603
复制相似问题