Django Many-to-many временный
Я не хочу добавлять ссылки, я хочу сделать их временными, как я могу решить эту проблему?
Direct assignment to the forward side of a many-to-many set is prohibited. Use user_permissions.set () instead.
def __init__(self, *args, **kwargs):
super().__init__(*args,**kwargs)
if self.container_folder:
# setattr(self, "user_permissions", self.container_folder.user_permissions)
if permission := self.container_folder.user_permissions.all():
self.user_permissions = [x.pk for x in permission]
Не работает. Каковы ваши предложения по решению проблемы?
venv/lib/python3.9/site-packages/django/db/models/fields/related_descriptors.py
class ReverseManyToOneDescriptor:
"""
Accessor to the related objects manager on the reverse side of a
many-to-one relation.
In the example::
class Child(Model):
parent = ForeignKey(Parent, related_name='children')
``Parent.children`` is a ``ReverseManyToOneDescriptor`` instance.
Most of the implementation is delegated to a dynamically defined manager
class built by ``create_forward_many_to_many_manager()`` defined below.
"""
def __init__(self, rel):
self.rel = rel
self.field = rel.field
@cached_property
def related_manager_cls(self):
related_model = self.rel.related_model
return create_reverse_many_to_one_manager(
related_model._default_manager.__class__,
self.rel,
)
def __get__(self, instance, cls=None):
"""
Get the related objects through the reverse relation.
With the example above, when getting ``parent.children``:
- ``self`` is the descriptor managing the ``children`` attribute
- ``instance`` is the ``parent`` instance
- ``cls`` is the ``Parent`` class (unused)
"""
if instance is None:
return self
return self.related_manager_cls(instance)
def _get_set_deprecation_msg_params(self):
return (
'reverse side of a related set',
self.rel.get_accessor_name(),
)
def __set__(self, instance, value):
raise TypeError(
'Direct assignment to the %s is prohibited. Use %s.set() instead.'
% self._get_set_deprecation_msg_params(),
)
Под капотом я вижу следующий код. Я бы не отказался от прохождения даже на уровне создания объекта как решения.