添加到ManyToMany提前

时间:2013-10-17 23:46:24

标签: django django-models

假设我在Django中有一个带有多个字段的模型。

class MyModel(models.Model):
    m2m_field = models.ManyToMany(OtherModel)

class OtherModel(models.Model):
    some_text = models.CharField(max_length=256)

如果我列出了MyModel的属性,那么在保存之前就没有m2m_field。

>>> my_model.m2m_field
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/django/db/models/fields/related.py", line 897, in __get__
    through=self.field.rel.through,
  File "/Library/Python/2.7/site-packages/django/db/models/fields/related.py", line 586, in __init__
(instance, source_field_name))
ValueError: "<MyModel>" needs to have a value for field "mymodel" before this many-to-many relationship can be used.

好的,够公平的。我致电my_model.save(),然后在RelatedManager上找到了my_model.m2m_field个对象,我可以致电my_model.m2m_field.add(other_model_instance)

但....有没有办法提前做到这一点?有时在没有某些字段的情况下发布内容并不是那么好。

1 个答案:

答案 0 :(得分:0)

我不完全确定你的问题,但我你想要查看依赖对象的帖子保存:

http://www.djangofoo.com/tag/post_save

您可以在保存MyModel时自动保存OtherModel吗?

如果我错过了您的观点,请随时澄清。