所以我目前有一个“帐户”模型和“帐户评论”模型 - 请记住,我无法真正控制数据库的方案,我正在编写现有数据库的包装。
在AccountComments模型下,有一个名为“数据”的字段。这是AccountComments实际上的位置,我正在尝试基本上在帐户模型上创建外键,而不必实际重新设计并在持有AccountID的帐户上添加“AccountComments”字段。
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使用“AccountID”对accountComments.accountID进行查找,然后提供“数据”。
我知道我可以使用
def accountComments(self):
return str(accountComment.objects.get(accountID = self.AccountID).Data)
但是我想让它与Django Admin一起使用,所以我需要它作为模型的集成部分。
谢谢,如果有人能指出我正确的方向。
答案 0 :(得分:0)
您尝试使用外键做太多事情。在Django中的外键后面应该返回模型实例,而不是模型实例中的特定字段。
db_column
应该是Account
表中存储id的列,例如。
accountComments = models.ForeignKey('accountComments',to_field='accountID',db_column='AccountID')
然后,要获取特定Data
实例的account
,您可以这样做:
account.accountComments.Data