RunLog表的Account表是one-to-one
。
因此,在帐户模型中,foreignKey不适用于这种情况,好吗?
# the user's account
class Account(models.Model):
balance = models.CharField(max_length=16)
runningLog = models.ForeignKey(to='RunningLog') # here only can do one-to-one
# account running logs
class RunningLog(models.Model):
from_account = models.CharField(max_length=32)
to_account = models.CharField(max_length=32)
content = models.CharField(max_length=128)
ctime = models.DateTimeField(auto_now_add=True)
uptime = models.DateTimeField(auto_now=True)
如何使用ORM实现one-to-many
情况?
答案 0 :(得分:0)
您当前的模型关系不是one-to-one
,而是many-to-one
。可以有多个Accounts
具有相同的RunningLog
。 Django docs:
要定义多对一关系,请使用
ForeignKey
:
为了获得所需的one-to-many
关系,您需要将ForeignKey
字段添加到RunningLog
模型中:
class RunningLog(models.Model):
account = models.ForeignKey(to=Account)
答案 1 :(得分:0)
runningLog关系不是一对一的,而是多对一的,因为一个RunningLog实例可以有MANY Account实例指向它。 如果要将MANY RunningLog实例链接到一个帐户,则应该在RunningLog类中将ForeignKey放入Account。 您将能够使用以下命令从帐户访问所有这些运行日志: user_account_instance.runninglog_set.all()