如何在Django中使用外键?

vxqlmq5t  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(80)
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不适合这些任务],但似乎没有任何工作。

wvt8vs2t

wvt8vs2t1#

ForeignKey是一对多关系。
您设置它的方式意味着:
每个Flashcard都链接到一个特定的ParentDeck
每个ParentDeck都链接到多个或一组Flashcard
可以访问链接零件,如下所示:

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查找的默认实现。
关系的其他选择是:

  • 一对一关系
  • 多对多关系

相关问题