Как правильно определить эти отношения в Django?
Короче говоря, у меня есть модель с - среди прочего - следующим:
class Connection(Model):
currentnas = models.ForeignKey(NAS, null = True, blank=True, default = None, on_delete=models.SET_NULL, related_name='active')
class NAS(Model):
# Various data fields
currentnas
- это, как следует из названия, представление сетевого хранилища, через которое в данный момент осуществляется соединение.
Эта часть работает нормально, однако теперь я пытаюсь добавить еще одно поле в Connection
:
permittednas = models.ManyToManyField(NAS)
Замысел состоит в том, чтобы на этапе аутентификации проверить, соответствует ли currentnas
одному из элементов в permittednas
; однако моя первая попытка заставить это работать столкнулась с проблемой, когда python сообщил мне, что TypeError: argument of type 'ManyRelatedManager' is not iterable
.
Чтобы пояснить, у меня есть несколько соединений a
, b
, c
, d
и несколько объектов NAS 1, 2, 3, 4, и я хочу иметь возможность сказать, что (например) a
разрешено подключаться через 1, 2 и 4; b
может подключаться через 2 и 4; c
может подключаться через все четыре, а d
может подключаться только через NAS 1.