私はDjangoコードスニペットのこの小さな宝石を使用して、ManyToManyFieldを両方向から編集しています。
class ManyToManyField_NoSyncdb(models.ManyToManyField):
def __init__(self, *args, **kwargs):
super(ManyToManyField_NoSyncdb, self).__init__(*args, **kwargs)
self.creates_table = False
class Job(models.Model):
persons = ManyToManyField_NoSyncdb( Person, blank=True, db_table='person_jobs' )
(スニペットの詳細はこちら)
これにより、ジョブフォームから特定のジョブのすべての人を選択でき、逆に、人フォームから人のすべてのジョブを選択して、どちらの場合も単一のjobs_personsテーブルを更新できます。
ただし、Django 1.0から1.2に移行すると、creates_tableは明らかに基本クラスでサポートされていないプロパティであるため、syncdbは重複テーブルエラーを生成するようになりました。
RelatedFieldのテーブルを作成しないようにDjango1.2に指示する別の方法はありますか?