現在、私は "アカウント"モデルと "アカウントコメント"モデルを持っています - 私は実際にデータベースのスキームを制御できません。私は既存のDBの周りにラッパーを書いています。Djangoの外部キーは、モデルの別のフィールドに基づいて自動的に埋められます
AccountCommentsモデルの下には、「データ」というフィールドがあります。 AccountCommentsが実際にどこにあるのですか、私は基本的に、AccountIDを保持するAccountにAccountCommentsフィールドを再設計して追加することなく、基本的にAccountモデルに外部キーを作成しようとしています。
class Account(models.Model):
AccountID = models.AutoField(editable=False, db_column='AccountID', verbose_name='ID',
primary_key=True)
acctno = models.IntegerField(editable=True, unique=True, db_column='ACCTNO', verbose_name='Acct #', blank=True,
null=True) # Field name made lowercase.
accountComments = models.ForeignKey('accountComments',to_field='accountID',db_column='Data')
def __str__(self):
return str(self.acctno)
class Meta:
managed = False
db_table = 'Account'
class accountComments(models.Model):
accountCommentID = models.AutoField(db_column='AccountCommentID', primary_key=True) # Field name made lowercase.
accountID = models.IntegerField(db_column='AccountID') # Field name made lowercase.
EntryUserID = models.IntegerField(db_column='EntryUserID') # Field name made lowercase.
EntryStamp = models.DateTimeField(db_column='EntryStamp',) # Field name made lowercase.
Data = models.TextField(db_column='Data') # Field name made lowercase.
guid = models.CharField(db_column='guid', max_length=255) # Field name made lowercase.
class Meta:
managed = False
db_table = 'AccountComment'
は最終的に、アカウントのモデルにaccountCommentsがaccountComments.accountIDに検索を行うには「アカウントID」を使用して、「データ」をバック提供したいです。
私は
def accountComments(self):
return str(accountComment.objects.get(accountID = self.AccountID).Data)
を使用することができることを知っているが、私はそれはDjangoの管理者と仕事をしたいので、私はそれがモデルの一部として統合する必要があります。
誰かが私を正しい方向に向けることができたらどうもありがとう。
あなたがFK間違った方法ラウンドを得たHavne't? 1つのアカウントに複数のコメントを関連付けることはできません。その逆もありませんか? – schwobaseggl
私はすべてのコメントが1つの巨大なテキスト文字列である2000 ASP.netから移行しています。そうではありません。 –
最終的に、私はAccountで 'accountComment'と呼ばれる別のフィールドを作成し、既存のすべてのフィールドのaccountIDを 'accountComment'にコピーし、外部キーを使用してAccountCommentモデル__str__で逆戻りしてデータを返したとします。 外部キーの参照がそのモデルの別のフィールドに基づいていることを定義する方法が必要なような気がします。 –