LINUX.ORG.RU

можно ли «отвязать» друг от друга 2 объекта (ManytoMany в модели)

 ,


0

1

Есть 2 объекта (один в Programmer , другой в Contribution). Между объектами ошибочно создалась связь (поле ManytoMany).

Как отвязать друг от друга эти объекты, не удаляя ни один из этих объектов?

class Programmer(models.Model):
        full_name=models.CharField(max_length=200)
        position=models.CharField(max_length=200, null=True)
        age=models.IntegerField(default=27)

        def __str__(self):
            return '%s , %s' % (self.full_name , self.position)

class Company(models.Model):
        name=models.CharField(max_length=100)
        headquarters=models.CharField(max_length=100, null=True)

        def __str__(self):
            return self.name

class Contribution(models.Model):
        description=models.CharField(max_length=100)
        company=models.ForeignKey(Company, null=True, on_delete=models.SET_NULL)
        programmer=models.ManyToManyField(Programmer, blank=True, related_name=$

        def __str__(self):
            return self.description

Как удалить эту связь между двумя конкретными объектами, не удаляя ни один из этих объектов из таблиц, не редактируя соответственно сами модели?

учитывая что вопрос задан не корректно, а по факту и смысла не имеет, ваш ответ «НИКАК»

q13 ()

что бы удалить связь вам нужно переписать модели, а именно удалить связи и сделать миграцию

q13 ()
Ответ на: комментарий от q13

вы, видимо, не поняли. Запись ManytoMany в самой модели корректна. Мне не нужно ее удалять или переписывать в файле models.py

Мне нужно «отвязать» друг от друга только 2 объекта из двух таблиц, т.к. они связаны ошибочно.

hibiscusM ()
Ответ на: комментарий от hibiscusM

Из таблицы (appname_contribution_programmer) просто удали запись с с соответствующими id contribution и id programmer

pi11 ★★★★★ ()

Использовать нужно было remove() в django shell.


>>> c.programmer.remove(p) # Disassociates Entry p from entry c.
hibiscusM ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.