我已阅读some,related,questions,但目前尚不清楚我的案例最佳做法是什么。 我是一个试图学习的数据库n00b,所以耐心受到赞赏。我的情况如下:
所以为了保持DRY,我尝试了多表继承:
# company.models.py
class GenericCompany(models.Model):
name, description, address, etc
class Manufacturer(GenericCompany): #can manufacture different things
stuff_specific_to_manufacturers
product = models.ManyToMany(GenericProduct)
class Reseller(GenericCompany): #can sell different things
stuff_specific_to_manufacturers
product = models.ManyToMany(GenericProduct)
etc for ServiceNRepair
和产品类似,
# product.models.py
class GenericProduct(models.Model):
name, price, color, etc
class StuffedAnimal(GenericProduct):
fluffyness, ears_or_not, etc
class Bicycle(GenericProduct):
wheel_diameter, weight, etc
etc for Barbies
现在我需要执行像
这样的查询但是我可以用M2M这样做吗? Manufacturer.objects.filter(product_icontains ='something')
这样的事情是行不通的。那么,我完全走错了路?是使用ContentTypes的典型解决方案吗?我想就接下来要研究的问题找一些方向来解决这个问题,这肯定是很常见的。任何提示赞赏。谢谢。
答案 0 :(得分:0)
您可以执行Manufacturer.objects.filter(product__name__icontains='something')
之类的操作,只需在Product中添加字段名称。