我使用Django的OneToOneField建立了两个模型,如下所示:
https://docs.djangoproject.com/en/2.0/topics/db/examples/one_to_one/
class Seats(models.Model):
north = models.OneToOneField('User',on_delete=models.CASCADE,related_name='north', default=None, null=True)
bridgetable = models.OneToOneField('BridgeTable',on_delete=models.CASCADE, default=None, null=True)
class BridgeTableManager(models.Manager):
def create_deal(self):
deal = construct_deal()
table = self.create(deal=deal)
s = Seats(bridgetable=table)
s.save()
return table
class BridgeTable(models.Model):
deal = DealField(default=None,null=True)
当我运行此代码时,我可以成功地使关系正常工作
table = BridgeTable.objects.get(pk='1')
user = User.objects.get(username=username)
table.seats.north = user
table.seats.north.save()
print(table.seats.north)
print语句打印出坐在北方的球员的名字。但如果我再次尝试这样访问表:
table = BridgeTable.objects.get(pk='1')
print(table.seats.north)
我得到的是“None”,而不是用户名。是否有什么东西我遗漏了,比如我遗漏的一次扑救或我不理解的一些概念?谢谢