我想將我的自定義模型保存為另一個模型中的欄位,如下所示。在一個會話中創建和使用它們是正常的。但是當我開始一個新的會話時,Django 會加載具有空 ID 的 player1 和 player2 的游戲模型。
這是我的代碼示例
class Player(models.Model):
name = models.CharField(max_length=40)
class Game(models.Model):
player1 = Player()
player2 = Player()
uj5u.com熱心網友回復:
看到你的評論。我認為這就是你想要的。
class Player(models.Model):
name = models.CharField(max_length=40)
class Game(models.Model):
player1 = models.OneToOneField(Player, on_delete=models.CASCADE, related_name='p1_game')
player2 = models.OneToOneField(Player, on_delete=models.CASCADE, related_name='p2_game')
uj5u.com熱心網友回復:
您需要使用外鍵:
from django.contrib.gis.db import models
class Player(models.Model):
name = models.CharField(max_length=40)
class Game(models.Model):
player1 = models.ForeignKey(Player, on_delete=models.CASCADE)
player2 = models.ForeignKey(Player, on_delete=models.CASCADE)
請參閱on_delete 在 Django 模型上做什么?有關該on_delete引數的資訊。
uj5u.com熱心網友回復:
您需要創建一個外鍵,django 實作多對一關系的方式:
class Game(models.Model):
player1 = models.ForeignKey(Player, on_delete=models.CASCADE, related_name="p1game")
player2 = models.ForeignKey(Player, on_delete=models.CASCADE, related_name="p2game")
不要忘記makemigrations和migrate!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/327177.html
下一篇:在DjangoORM中按查詢分組
