Перемещение объектов из одной ассоциации «многие ко многим» в другую в Django? - PullRequest
0 голосов
/ 21 апреля 2009

Есть вопрос. Скажем, у меня есть две модели в отношениях «многие ко многим» (статья, публикация). Статья А находится в Публикации Один, Два и Три. Я хочу удалить его из этих публикаций и поместить в публикацию X. Документация django охватывает удаление объектов и добавление объектов, но я не хочу ни удалять, ни добавлять объекты, просто «перемещать» их. Как бы я это сделал?

Заранее спасибо,

J

Ответы [ 2 ]

2 голосов
/ 21 апреля 2009
pubx = Pubblication(.....)
pubx.save()

article_obj = Article.objects.get(id=1)

remove_from_lst = ["pubblication a", "pubblication b", "pubblication c"]
remove_from_qs = Pubblication.objects.filter(name__in=remove_from_lst)

for qs in remove_from_qs:
    article_obj.pubblications.remove(qs)

article_obj.pubblications.add(pubx)

article.save()
1 голос
/ 21 апреля 2009

Вам просто нужно удалить связи с публикациями 1, 2 и 3 и создать связь с публикацией x:

# `a` being an instance of the Article object, pub{1,2,3,x}, being 
# instances of Publication objects
a.publications.remove(pub1)
a.publications.remove(pub2)
a.publications.remove(pub3)
a.publications.add(pubx)

Хороший пример того, как это сделать, можно найти в документах django .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...