0

Django に manytomany フィールドを持つモデルがあるとします。

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)

しかし....これを事前に行う方法はありますか?特定のフィールドなしで何かを投稿するのは、あまり良くない場合があります。

4

1 に答える 1