我正在使用一个我无法修改的现有数据库,并且在尝试处理在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')
...
我想创建一个表单来显示与特定“人物”相关联的所有“电话”,并且还能够修改/添加/删除属于“人员”的“电话”。现在我唯一能想到的就是在一个模型中显示'Phones',然后如果添加或删除一个'Phones',请手动设置'Personsphones'关系。关于如何最好地处理此模型设置的任何想法?
答案 0 :(得分:0)
要更改模型,您可能需要使用django-south http://south.aeracode.org/docs/ 至于在您的forms.py下显示“手机”,您可能需要像这样设置类元。有了这个,模型的任何变化都会反映出变化
class Meta:
model = Persons
exclude = ('user')
在模型中,您可能希望在手机和人之间使用Forekey之前的关系。在这里更好地看到https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey