当我尝试
__str__()
针对外国人的方法会提供此错误
__str__ returned non-string (type Product)
models.py
class Product(models.Model):
product_name = models.CharField(unique=True, max_length=50 ,
blank=False,null=False)
price = models.PositiveIntegerField()
active = models.BooleanField(default=True)
def __str__(self):
return self.product_name
class ProductOrder(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE ,
null=True)
ordering = models.ForeignKey(Order,
on_delete=models.CASCADE,blank=True,null=True)
pass
def __str__(self):
return self.product
我也尝试过
def __str__(self):
return self.product.product_name
#product_name is a field from Product table
将提供的错误是
__str__ returned non-string (type QuerySet)
如何表示它,谢谢您的答复!
答案 0 :(得分:3)
除了str
方法中的__str__
外,您不能返回其他任何内容。 self.product
不是str
,而是Product
对象。
不过,您可以在其上调用str(..)
,以获得该Product
的文本表示形式:
class ProductOrder(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE, null=True)
ordering = models.ForeignKey(Order, on_delete=models.CASCADE,blank=True,null=True)
def __str__(self):
return str(self.product)
答案 1 :(得分:3)
由于models.ForeignKey(Product, on_delete=models.CASCADE ,
null=True)
不返回str
,因此请返回该函数的字符串或尝试执行
return str(self.product)
答案 2 :(得分:2)
尝试
def __str__(self):
return str(self.product)
另外,您可能需要在__str__
模型上定义Product
方法
答案 3 :(得分:0)
ForeignKey 返回连接到Key的整个链接库。您需要从 ProductOrder 返回 CharFeiled ,或从其他类中像 self.product.product_name 一样搅拌。