gpt4 book ai didi

python - 将值附加到 Django 模型

转载 作者:搜寻专家 更新时间:2023-10-30 22:05:34 24 4
gpt4 key购买 nike

我有 2 个数据库模型:

class Book(models.Model):
title = models.CharField(max_length=150, null=False)
author = models.CharField(max_length=150, null=False)
date_pub = models.DateField(verbose_name="Date Published")

class Customer(models.Model):
name = models.CharField(max_length=25, null=False)
surname = models.CharField(max_length=35, null=False)
age = models.IntegerField(null=False)
book = models.ForeignKey(to=Book, on_delete=models.CASCADE)

我的应用程序是最近创建的,所以我使用 manage.py shell 向这些模型插入数据。

例如,假设我创建了标题为 "Kolobok""Zolotaya Ribka" 的书。接下来,我创建了客户 “Vasya”。当我创建客户 “Vasya” 时,我将字段 book 指向“Kolobok”。但随着时间的推移,我想将书 "Zolotaya Ribka" 附加到 "Vasya" 的书。

我该怎么做?

最佳答案

您可能需要 ManyToManyField [Django-doc]反而。多对多字段意味着 Customer 可以链接到零个、一本或多本 Book(所以这里意味着客户购买了零本、一本或多本books),Book 可以链接到零个、一个或多个客户(因此一本书由零个、一个或多个客户购买)。

因此,我们可以通过引入字段 books 来改造它:

class Customer(models.Model):
name = models.CharField(max_length=25, null=False)
surname = models.CharField(max_length=35, null=False)
age = models.IntegerField(null=False)
<b>books = models.ManyToManyField(Book)</b>

然后我们可以像您一样构建例如书籍和客户:

b1 = Book.objects.create(title='Kolobok', author='')
b2 = Book.objects.create(title='Zolotaya Ribka', author='')

接下来我们可以创建一个客户:

c1 = Customer.objects.create(name='Vasya', surname='', age=73)

然后我们可以将b1b2两本书链接到c1:

c1.books.<b>add(b1, b2)</b>

参见 documentation on many-to-many relationships获取更多信息。

关于python - 将值附加到 Django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57833741/

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