[英]how to use __str__ with foreign key '__str__ returned non-string (type Product)'
當我嘗試
__str__()
外國的方法它提供了這個錯誤
__str__ returned non-string (type Product)
模型.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)
如何表示,謝謝回復!
您不能從__str__
方法返回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)
因為models.ForeignKey(Product, on_delete=models.CASCADE , null=True)
沒有返回str
所以為那個函數返回一個字符串或者嘗試做
return str(self.product)
嘗試
def __str__(self):
return str(self.product)
此外,您可能需要在Product
模型上定義__str__
方法
ForeignKey返回連接到 Key 的整個鏈接基。 您需要從ProductOrder返回CharFeiled或從其他類中像self.product.product_name一樣攪拌。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.