django - __str__ 返回非字符串(类型 takimlar)
问题描述
嗨,我无法解决这个问题。如果您能提供帮助,我将不胜感激。
class Musabaka(models.Model):
kuno=models.ForeignKey(Club,on_delete=models.CASCADE,verbose_name="Kulüp")
seno=models.ForeignKey(Sezon,on_delete=models.CASCADE,verbose_name="Sezon")
rano=models.ForeignKey(takimlar,on_delete=models.CASCADE,verbose_name="Rakip Takım")
katno=models.ForeignKey(Kategori,on_delete=models.CASCADE,verbose_name="Kategori")
mtarih=models.DateTimeField(auto_now_add=False,verbose_name="Müsabaka Tarihi")
def __str__(self):
return self.rano
我应该如何尝试一种方法
class takimlar(models.Model):
kno=models.ForeignKey(Club,on_delete=models.CASCADE)
takim=models.CharField(max_length=50)
created_date=models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.takim)
解决方案
这个错误是不言自明的。在您的第一个模型中,您编写:
def __str__(self): return self.rano
Butrano
是一个takimlar
对象,因为您ForeignKey
为takimlar
模型定义了一个。您可以通过将其包装在构造函数中来获取该对象的文本表示:str
class Musabaka(models.Model):
# ...
def __str__(self):
return str(self.rano)
至于takimlar
模型,你不需要调用str(..)
它,因为takim
是 a CharField
, henseself.takim
已经是一个字符串,所以:
class takimlar(models.Model):
# ...
def __str__(self):
return self.takim