所以我有Product
和ProductImage
型号。每个Product
都可以包含多个ProductImage
模型。在Django管理页面中,我希望产品图像显示与其相关的产品名称。
class Product(models.Model):
name = models.CharField(max_length=150)
price = models.DecimalField(max_digits=9, decimal_places=2)
product_count = models.IntegerField(blank=True, default=0)
description = models.TextField()
class ProductImage(models.Model):
image_addr = models.FileField(upload_to='products/')
product_id = models.ForeignKey(Product, on_delete=models.CASCADE)
def __str__(self):
q = <*name of the product with the product_id*>
如果产品图片是手机的图片,例如iPhone X,则图片应该显示。现在,产品图片列仅显示ProductImage
个对象。我该如何解决这个问题?
答案 0 :(得分:2)
试试这个。
提示:字段名称可以是
,而不是product_id
product
如果您将名称product_id
更改为product
,请记住以下
def __str__(self):
return "%s %s" % (self.product_id.name, self.product_id.id )
答案 1 :(得分:0)
理想情况下,每个模型中都应该有一个 unicode 方法,以便您能够以更具描述性的方式查看数据。你的模型应该是这样的
class Product(models.Model):
name = models.CharField(max_length=150)
price = models.DecimalField(max_digits=9, decimal_places=2)
product_count = models.IntegerField(blank=True, default=0)
description = models.TextField()
def __unicode__(self):
return u"{}-{}".format(self.id, self.name)
class ProductImage(models.Model):
image_addr = models.FileField(upload_to='products/')
product_id = models.ForeignKey(Product, on_delete=models.CASCADE)
def __unicode__(self):
return u"{}".format(self.product_id)
我建议使用 unicode 而不是 str ,因为如果产品名称包含非ascii字符,则 str 会引发错误。