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