0

変更できない既存のデータベースを使用しており、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')
    ...

特定の「人」に関連付けられたすべての「電話」を表示するフォームを作成し、さらに「人」に属する「電話」を変更/追加/削除できるようにしたいと考えています。今私が考えることができる唯一のことは、「電話」をモデルフォームセットに表示し、追加または削除された場合は手動で「人電話」関係を設定することです。このモデルのセットアップに最適な方法についてのアイデアはありますか?

4

1 に答える 1

0

モデルに変更を加えるには、django-south http://south.aeracode.org/docs/を使用することを お勧めします。forms.py の下に「電話」を表示する限り、クラス メタをそのように設定することをお勧めします。これにより、モデルに加えられたすべての変更が変更に反映されます

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

モデルでは、phones と Persons の間の関係に Foreignkey を使用したい場合があります。ここで実際によく見られますhttps://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey

于 2012-04-26T19:17:15.247 に答える