Я использую эту маленькую жемчужину фрагмента кода 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' )
(детали фрагмента здесь)
Это позволяет мне выбрать всех людей на данной работе из формы рабочих мест и, наоборот, позволяет мне выбрать все рабочие места для человека из формы лиц и обновить таблицу single jobs_persons в обоих случаях.
Однако при переходе с Django 1.0 на 1.2 syncdb теперь генерирует ошибку повторяющейся таблицы, потому что create_table явно больше не поддерживается в базовом классе.
Есть ли другой способ указать Django 1.2 не создавать таблицу для RelatedField?