Django OneToOneField,ManyToManyField,外键

2024-04-23 19:18:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我读过很多关于OneToOneField,ManyToManyField和Foreign Key是什么的帖子,但是他们并不十分清楚。我对Django和python编程非常陌生,目前正在尝试开发模型。有人能用简单的语言向我解释一下,最好是举例说明,他们各自是什么?在


Tags: djangokey模型语言编程帖子foreignmanytomanyfield
1条回答
网友
1楼 · 发布于 2024-04-23 19:18:30

设想一个数据库,它存储您的图书集:

from django.db import models

class Place(models.Model):
    address = models.CharField(max_length=50)
    country = models.CharField(max_length=50)

class Publisher(models.Model):
    name = models.CharField(max_length=30)
    place = models.OneToOneField(Place, primary_key=True)

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)

class Book(models.Model):
    title = models.CharField(max_length=100)
    publisher = models.ForeignKey(Publisher)
    authors = models.ManyToManyField(Author)

一对多/外键

每个Book都有一本Publisher,但是Publisher可能已经出版了多本书。因此,它们是一对多(图书对出版商)的关系。在

一对一

每个Publisher位于一个Place,每个Place只能容纳一个Publisher。因此他们是一对一的关系。您本可以将Place信息(address和{})与{}模型放在一个表中,但有时最好有单独的模型。例如,如果您不知道每个Publisher对应的Place,则不需要用空行占用大量空间。在

多对多

每个Book也有一个或多个Authors。但是,Author可能写了多个{},因此它们是多对多的关系。在

如果你还需要一些指导,我建议你看看the model chapter of the Django Book

相关问题 更多 >