【发布时间】:2011-08-18 19:29:33
【问题描述】:
所以我在post_save 上使用信号触发函数在保存第一个模型时创建另一个模型的实例:
触发信号的模型:
class Product(models.Model):
# ...
colors = models.ManyToManyField(Color)
sizes = models.ManyToManyField(Size)
以及功能:
def create_skus(instance, **kwargs):
for color in instance.colors.select_related():
for size in instance.colors.select_related():
SKU.objects.get_or_create(product=instance, color=color, size=size)
我的问题是 create_skus 应该每次都在 post_save 上调用,但似乎只能在第二次保存或之后工作,导致用户必须保存产品两次。这是什么来头?
编辑:我认为这与这些 M2M 关系的添加方式有关(即 instance.colors.add(<Color object>) 但我不确定,如果您知道解决方法,我很乐意你永远。
【问题讨论】:
标签: django django-signals