首页 > 解决方案 > __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)

标签: django

解决方案


这个错误是不言自明的。在您的第一个模型中,您编写:

def __str__(self):
    return self.rano

Butrano是一个takimlar对象,因为您ForeignKeytakimlar模型定义了一个。您可以通过将其包装在构造函数中来获取该对象的文本表示: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

推荐阅读