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')

在模型中,您可能希望在电话和人员之间使用外键关系。在这里更好地看到行动https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey

于 2012-04-26T19:17:15.247 回答