gpt4 book ai didi

python - Django OneToOneField,ManyToManyField,外键

转载 作者:太空狗 更新时间:2023-10-30 00:50:04 24 4
gpt4 key购买 nike

我已经阅读了很多关于什么是 OneToOneField、ManyToManyField 和外键的帖子,但它们不是很清楚。我对 Django 和 python 编程很陌生,目前正在尝试开发模型。有人可以用简单的语言(最好是举例)向我解释它们各自是什么吗?

最佳答案

想象一个数据库,它存储您的藏书:

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 信息(addresscountry)与 Publisher 模型放在一个表中, 但有时最好有单独的模型。例如,如果您不知道每个 PublisherPlace,则不需要用空行占用大量空间。

多对多

每本 Book 也有一个或多个 Author。但是,一个 Author 可能写了多本 Book,因此它们处于多对多关系中。

如果您仍然需要一些指导,我建议您查看 the model chapter of the Django Book .

关于python - Django OneToOneField,ManyToManyField,外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24919638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com