我有以下型号:
class Dog(AbstractAnimals):
pass
class Meta:
app_label = 'animals'
class Cat(AbstractAnimals):
pass
class Meta:
app_label = 'animals'
是以下内容的摘要:
class AbstractAnimals(models.Model):
description = models.CharField()
这就是我的问题所在。如果我有一个房子模型,它可以有一个或两个 动物。我可以想出两种方法来解决这个问题,但我不确定哪种更好。你知道吗
class House(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='animal', null=True)
1)在房屋模型上使用2个通用外键
2)使用2个标准外键
3)另一种选择?你知道吗
哪一个是更好的选择,和或意见?谢谢。你知道吗
如果House可以有两个动物,而animal只能在一个House中,并且您希望您的代码可以轻松地添加其他动物类型,那么AbstractAnimal应该具有House的常规外键,在这种情况下House不应该具有任何外键。你知道吗
对象(或模型或表格)之间的这种关系通常被称为“多对一”:许多动物被连接(或可以)到一个房子。你知道吗
GenericForeignKeys的示例用法是comment或tag模型,其中可以对许多不相关的内容类型(文章、博客条目、图像、视频等)进行评论或标记。在这种情况下,注释或标记模型应该具有指向“未知”模型的GenericForeignKey。Internet上提供的一些注释和标记包使用这种模式。你知道吗
在我看来,GenericForeignKey最适合于编写一个可重用的应用程序或包,其中的模型在编写时需要与一些未知的内容类型(其他模型)相关。你知道吗
相关问题 更多 >
编程相关推荐