【发布时间】:2015-02-18 18:16:28
【问题描述】:
我有一个模型,在实例化时,需要为其自己的外部关系创建新实例。这是一个例子:
class CustomOrder(models.Model):
product = models.OneToOneField(Product)
customer = models.ForeignKey(Customer)
当一个新的 CustomOrder 被创建时,
CustomOrder.objects.create()
它需要创建新的产品和客户实例来满足它的外键要求。
也许这里需要类方法之类的东西?
@classmethod
def create(cls, base_product):
product = Product.objects.create()
customer = Customer.objects.create()
return cls(product=product, customer=customer)
很遗憾,这个类方法没有按设计工作。
【问题讨论】:
-
订单会创建一个全新的产品/客户而不是使用现有产品/客户似乎很奇怪
-
自定义订单(例如委托的艺术品)是针对尚不存在的产品的。如果客户只是在寻找快速报价,我们可能对此一无所知。
标签: django database django-models foreign-keys class-method