gpt4 book ai didi

python - 具有多个模型的外键

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:40 24 4
gpt4 key购买 nike

如果我有两个模型

class modelA(models.Model):
# properties...

class modelB(models.Model):
# properties

并且我希望两个模型都到images 字段,那么我将如何编写图像模型?如果它只是一个,那么我认为它会像:

class Image(models.Model):
image = models.ForeignKey(modelA)

因此,如果我还希望 modelB 有图像,那将如何工作?我是否必须编写 ImageAImageB

最佳答案

看起来你想使用 generic foreign keys :

from django.db import models
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType

class Image(models.Model):
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')

现在,您的 Image 模型可以具有指向任何其他模型的外键,并且您可以将多个图像与每个对象相关联。我上面链接的文档解释了如何使用此设置和查询对象等。

参见 this answer了解如何限制这一点,以便您可以仅对特定模型使用外键。

关于python - 具有多个模型的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37152200/

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