Есть ли способ добавить ForeignKey к модели сайта в Django Sites Framework?

Этот ответ показывает обратное тому, что я ищу, потому что позволяет 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)

Я понимаю, что я мог бы использовать ManyToManyField но в моем случае один Site объект никогда не будет иметь несколько Asset объекты.

1 ответ

Вы не можете иметь Внешний ключ в обоих направлениях (от Актива к Сайту и от Сайта к Активу) -> это решается с помощью сводной таблицы (Многие ко Многим)

Если вам просто нужно, чтобы отношение содержало много ресурсов для 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

Кроме того, я бы посоветовал вам прочитать немного больше о взаимоотношениях с базой данных

Другие вопросы по тегам