首页 > 解决方案 > Django / Models / Admin /外键问题:__str__返回非字符串(类型元组)

问题描述

我已经尝试过在其他主题上找到多种解决方案,但没有任何效果。

我在 Django Admin 中的外键有问题。无法查看记录或添加新记录。

我有一个convertion_factor没有 NULL 值的表。见 postgreSQL 配置

这是我的模型:

class convertion_factor(models.Model):
    foodID = models.ForeignKey('food_name', on_delete=models.CASCADE)
    measureID = models.ForeignKey('measure_name', on_delete=models.CASCADE)
    conversionFactorValue = models.FloatField()
    convFactorDateOfEntry = models.DateField(auto_now=False, auto_now_add=False) 

为了在 Django Admin 中查看数据,您必须添加def __str__(self): 到模型中。好的,让我们这样做:

class convertion_factor(models.Model):
    foodID = models.ForeignKey('food_name', on_delete=models.CASCADE)
    measureID = models.ForeignKey('measure_name', on_delete=models.CASCADE)
    conversionFactorValue = models.FloatField()
    convFactorDateOfEntry = models.DateField(auto_now=False, auto_now_add=False) 

    def __str__(self):
        return self.conversionFactorValue

现在,当我转到 Django Admin 并单击模型时,convertion_factor我可以很好地看到表格,但是当我尝试单击记录进行编辑时,出现此错误:

/admin/kalo/conversion_factor/19505/change/ 处的类型错误

Exception Type: TypeError at /admin/kalo/convertion_factor/19505/change/
Exception Value: __str__ returned non-string (type float)

我的印象是由于外键,这是一个错误,因为我的其他模型没有外键,一切正常。

def __str__(self):我尝试过的功能中:

return self.foodID.__str__但同样的错误

return str(self.foodID)但同样的错误

你有什么主意吗 ?

谢谢您的帮助。

标签: pythondjangodjango-modelsforeign-keysadmin

解决方案


这段代码可以正确处理浮点值,它会以字符串值的形式返回一个浮点值。

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

我在下面添加了一个屏幕截图。

django 管理页面视图


推荐阅读