2016-06-17 61 views
0
emp = Employee.objects.filter(id=1) 

Persons = Employee.objects.extra(select={'difference':(emp.values_list("Salary",flat=True)[0]-float('Salary'))}) 

但它給錯誤:如何比較一個員工與django模型中的所有員工工資?

Exception Type: ValueError

Exception Value:could not convert string to float: 'Salary'.

我如何解決這個錯誤。

+0

幾乎沒有足夠的信息。張貼您的模型 – e4c5

回答

0

'Salary'確實是一個字符串,而不是一個數字。所以python無法進行轉換。你不想要字符串'Salary',你想要的字段Salary。要做到這一點,您需要使用Django F() expressions

或者在這裏,在.extra(select...的上下文中,我相信Django只是期待一個SQL字符串。例如:.extra(select={'diff': "%f - salary"}, select_params=emp.Salary)

但是作爲docs for extra explain,您可能確實想要使用.annotateF() expressions結合使用。 .extra設置爲棄用。

+0

它給錯誤「TypeError:'浮動'對象不可迭代」 – Amit

相關問題