【发布时间】:2011-12-21 13:03:13
【问题描述】:
我有一个包含多个步骤的系统。每一步都会增加一个对象实例。 我只想在最后一步将实例保存在 db 中,其他人只需更新我在会话中保存的实例。
我的模型类看起来像这样:
class Proposta(models.Model):
Modelo = models.ForeignKey("ModeloVersao", verbose_name="Modelo")
Pacotes = models.ManyToManyField("PacoteModelo", null=True, blank=True)
Opcionais = models.ManyToManyField("ItemModelo", null=True, blank=True)
RevestimentoInterno = models.ForeignKey("RevestimentoInternoModelo", verbose_name="Revestimento Interno")
Cor = models.ForeignKey("CorModelo")
CorSecundaria = models.ForeignKey("CorModeloSecundaria", verbose_name="Cor secundária", null=True, blank=True)
Data = models.DateTimeField(auto_now_add = True)
Status = models.CharField("Status", choices=STATUS_PROPOSTA, max_length=10)
Cliente = models.ForeignKey("Cliente")
这是我的问题: 当我尝试添加或检索 m2m 字段时,它显然会抛出一个 ValueError 消息 'Proposta' instance需要有一个主键值才能使用多对多关系。
我通过使用 pk=0 创建我的 obj 实例成功地获得了想要的结果,但我确信这不是最好的方法,如果有的话。
确实存在一种方法可以做到这一点而不会像这样作弊。
任何帮助都会很棒。
谢谢
【问题讨论】:
标签: python mysql django session many-to-many