【问题标题】:Django / Models / Admin / Problem with the foreign key : __str__ returned non-string (type tuple)Django / Models / Admin /外键问题:__str__返回非字符串(类型元组)
【发布时间】:2021-12-13 06:30:25
【问题描述】:

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

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

我有一个表 convertion_factor 没有 NULL 值。 see postgreSQL config

这是我的模型:

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 时,我可以很好地看到表格,但是当我尝试单击记录进行编辑时,出现此错误:

TypeError at /admin/kalo/convertion_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) 但同样的错误

你有什么想法吗?

感谢您的帮助。

【问题讨论】:

  • return str(self.foodID) 是否给出相同的错误?
  • 是的,完全一样。 @bichanna

标签: python django django-models foreign-keys admin


【解决方案1】:

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

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

我在下面添加了截图。

【讨论】:

  • 是的,我试过了。我可以像你的截图一样显示数据,但如果我点击数据 14.6 我仍然有错误:TypeError at /admin/kalo/food_name/503380/change/__str__ returned non-string (type tuple)@BharatNaik
猜你喜欢
  • 2021-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多