首页 > 解决方案 > __str__ 返回非字符串(浮点类型)

问题描述

这种类型的题虽然很多,但没有一个是浮点型的。我正在尝试向我的 django 模板发送一个浮点值。

models.py

class BudgetInfo(models.Model):
    items= models.CharField(max_length=20)
    cost= models.FloatField(blank=False, null=True)
    date_added= models.DateField()
    user= models.ForeignKey(User, on_delete= models.CASCADE)

    def __str__(self):
        return self.cost

views.py(登录后将其重定向到此视图):

def app_view(request):
    budget_qs=BudgetInfo.objects.filter(user=request.user)
    budget=budget_qs[0]
    return render(request,'tasks_notes/index.html',{'budget':budget})

index.html使用预算:

 <div class="container center">
 <h3 class='center'>Your total budget is: <span style="color:green;">{{ budget|floatformat:"-2" }}</span> dollars</h3>

我收到这种类型的错误:

__str__ returned non-string (type float)

突出显示此处提到的 html 的第二行。我该如何解决这个问题?

标签: pythondjango

解决方案


__str__ 必须始终返回字符串

似乎这对你有帮助

  def __str__(self):
     return str(self.cost)

推荐阅读