我想在創建訂單實例時發送電子郵件(僅限)。在電子郵件模板中,我需要訪問m2m關係。不幸的是,它看起來像是m2m關係尚未填充,而itemmembership_set.all()方法返回一個空列表。在新創建的實例的保存方法上訪問m2m關係
這裏是我的代碼:
class Item(models.Model):
...
class Order(models.Model):
...
items = models.ManyToManyField(Item, through='ItemMembership')
def save(self, *args, **kwargs):
pk = self.pk
super(Order, self).save(*args, **kwargs)
# If the instance is beeing created, sends an email with the order
# details.
if not pk:
self.send_details_email()
def send_details_email(self):
assert len(self.itemmembership_set.all()) != 0
class ItemMembership(models.Model):
order = models.ForeignKey(Order)
item = models.ForeignKey(Item)
quantity = models.PositiveSmallIntegerField(default=1)
不,因爲多對多的關係*在字面上不能存在*直到一個項目被保存。你如何填充'物品'? –
現在我正在使用Django管理員。我計劃稍後在前端製作一個表格。 – user1415785
我想django信號是你在找什麼。 看到這個 - > https://docs.djangoproject.com/en/1.10/topics/signals/ –