У меня есть эти четыре модели все связаны ManyToManyFields:установленное значение в соответствующей модели с ManyToManyField
< -> B < -> C < -> D
Для объекта A мне нужно установить значение в соответствующем поле в D.
class A(models.Model):
name = models.CharField()
# Get all foo, from differents B, C and D
@property
def get_all_foo(self):
for b in B.objects.filter(...):
for c in C.objects.filter(...):
foo = ';'.join([d.foo for d in D.objects.filter(...)])
return foo
def set_foo(self, value):
# the code I need
class B(models.Model):
a = ManyToManyField(A)
class C(models.Model):
b = ManyToManyField(B)
class D(models.Model):
c = ManyToManyField(C)
foo = models.TextField()
Мне нужно установить значение foo в D из функции в A (таким же образом я получаю все значения от нее). Как я могу это сделать?
Определенно более эффективным, но мне интересно, если он изменяет результаты оп получает от этого метода, поскольку обув перезаписывается на каждой итерации. Вероятно, это должно быть то, что вы показали здесь, хотя – Sayse