2012-04-26 2 views
0

Я работаю с существующей базой данных, которую я не могу изменить и с некоторыми проблемами пытаюсь разобраться с представлением форм для изменения базы данных в Django. Структура, о которой идет речь, выглядит следующим образом, и все модели неуправляемы.Django формы с нечетными отношениями модели

class Persons(models.Model): 
    personid = models.BigIntegerField(primary_key=True, db_column='PersonID') 
    .... 

class Phones(models.Model): 
    phoneid = models.BigIntegerField(primary_key=True, db_column='PhoneID') 
    number = models.CharField(max_length=60, db_column='Number', blank=True) 
    type = models.CharField(max_length=15, db_column='Type', blank=True) 
    ... 

class Personsphones(models.Model): 
    personphoneid = models.BigIntegerField(primary_key=True, db_column='PersonPhoneID') 
    personid = models.ForeignKey(Persons, db_column='PersonID') 
    phoneid = models.ForeignKey(Phones, db_column='PhoneID') 
    ... 

Я хочу, чтобы создать форму, чтобы отобразить все «Телефоны», связанные с конкретным «Лица» и дополнительно иметь возможность изменить/добавить/удалить «Телефоны» принадлежности к «Лица». Прямо сейчас, единственное, что я могу придумать, это отобразить «Телефоны» в файле модели, а затем, если один из них добавлен или удален вручную, установите отношение «Персоналии». Любые идеи о том, как лучше всего справляться с этой настройкой модели?

ответ

0

Для внесения изменений в свои модели вы можете использовать django-south http://south.aeracode.org/docs/ Что касается отображения вашего «телефона» под вашими формами.py, вы можете настроить мета-класс таким образом. При этом любые изменения, сделанные в модели будут отражать на изменения

class Meta: 
    model = Persons 
    exclude = ('user') 

В моделях вы можете захотеть использовать ForeignKey отношения между телефонами передние и людьми. Лучше видно в действии здесь https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey

+0

Спасибо, но, возможно, мне не ясно, что я не могу изменить базу данных. Я имел в виду, что схема базы данных не должна меняться из-за факторов, находящихся вне моего контроля. Если бы у меня был внешний ключ между телефонами и людьми, у меня не было бы проблем. –

Смежные вопросы