1

这个答案显示了我正在寻找的相反,因为它允许一个Site人拥有许多Asset对象:

# Note: This is not my code. This is opposite of what I want.
# I want the ForeignKey on the Site object.
from django.contrib.sites.models import Site

class Asset(models.Model):
    site = Models.ForeignKey(Site)

有没有办法将 ForeignKey 字段添加到Site模型中,这样一个人Asset就可以有很多Site对象?像这样的(非工作)代码:

from django.contrib.sites.models import Site

class UpdatedSite(Site):
    asset = models.ForeignKey(Asset)

我知道我可以使用 aManyToManyField但在我的情况下,一个Site对象永远不会有多个Asset对象。

4

1 回答 1

0

您不能在两个方向(从资产到站点和从站点到资产)都有外键-> 这可以通过使用数据透视表(多对多)来解决

如果您只需要为 1 个站点保留多个资产的关系,请在资产模型中保留外键并删除一个站点模型。

from django.contrib.sites.models import Site

class Asset(models.Model):
    site = Models.ForeignKey(Site)

-

from django.contrib.sites.models import Site

class UpdatedSite(Site):
     pass

另外,我建议您阅读有关数据库关系的更多信息

于 2017-09-23T15:11:08.647 回答