【发布时间】: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