from django.db import models
# Create your models here.
class ParentDeck(models.Model):
deck_name = models.CharField(max_length=300, primary_key=True)
def __str__(self):
return self.deck_name
class Flashcard(models.Model):
cardID = models.AutoField(primary_key=True)
question = models.CharField(max_length=300)
answer = models.CharField(max_length=300)
due_date = models.DateField()
parent_deck = models.ForeignKey(ParentDeck, null=True, on_delete=models.CASCADE)
def __str__(self):
return self.name
这已经让我痛苦了一段时间了。任何帮助将不胜感激!我还是个初学者:)
我尝试查找解决方案并使用 ChatGPT [我了解到 ChatGPT 不太适合这些任务],但似乎没有任何效果。
最佳答案
好的,那么ForeignKey
是 One-to-Many关系。
您的设置方式意味着:
每一个Flashcard
链接到特定的ParentDeck
。
每ParentDeck
链接到多个或一组Flashcard
s。
您可以像这样访问链接的部分:
from app.models import Flashcard
f = Flashcard.objects.all().first()
print(f.parentdeck.deck_name)
以下是相反的方式,称为反向查找。
from app.models import ParentDeck
d = ParentDeck.objects.all().first()
linked_flashcards = d.flashcard_set.all()
print(linked_flashcards.first().question)
带下划线的语法-“set”或<object>_set
是 django 反向查找的默认实现。
关系的其他选项是:
- 一对一关系
- 多对多关系
关于python - 如何在 Django 中使用外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76777579/