如何解决如何为TO字段创建不同模型的ForeignKey剩余机会?
我有以下多个产品型号
class ProductBase(models.Model):
name = models.CharField(max_length=50)
class Meta:
abstract = True
def __str__(self):
return self.name
class ProductOne(ProductBase):
color = models.CharField(max_length=50)
class ProductTwo(ProductBase):
type = models.CharField(max_length=50)
class ProductThree(ProductBase):
breed = models.CharField(max_length=50)
预计这些产品中的每一个都有一个image_set,因此我在下面为产品的图像创建了模型
class Image(models.Model):
product = models.ForeignKey(to=[HERE IS THE PROBLEM],on_delete=models.CASCADE)
image = models.ImageField(upload_to='upload-path')
如何根据需要使Image类中的product字段指向上面定义的任何产品。
解决方法
class Image(models.Model):
product = models.ForeignKey(ProductOne,on_delete=models.CASCADE)
image = models.ImageField(upload_to='upload-path')
没有'to'属性,您只需将其引用到所需的模型即可
,最好所有产品都只有一个模型,例如:
class Product(ProductBase):
model = models.CharField(max_length=50) #here for example you put the individual info from the different types of products
color = models.CharField(max_length=50,null=True) #add null=True so you don't have to add it for all the products
etc...
然后,您不需要单独的Image
模型,只需将其作为字段添加到Product
模型中即可。我相信这是一种更清洁的实现方式,因为在这种情况下并不需要多个模型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。