Как правильно определить эти отношения в 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.

Вернуться на верх