__str__返回的非字符串(takimlar类型)

时间:2019-02-15 21:54:34

标签: django

嗨,我无法解决这个问题。如果您有帮助,我将不胜感激。

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)

1 个答案:

答案 0 :(得分:0)

该错误很容易解释。在第一个模型中,您编写:

def __str__(self):
    return self.rano

但是ranotakimlar对象,因为您为ForeignKey模型定义了takimlar。您可以通过将该对象包装在str构造函数中来获取该对象的文本表示形式

class Musabaka(models.Model):

    # ...

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

对于takimlar模型,您不必 就此调用str(..),因为takimCharField,因此self.takim已经是一个字符串,因此:

class takimlar(models.Model):

    # ...

    def __str__(self):
        return self.takim