2009-04-21 11 views
0

質問があります。多対多の関係で2つのモデルがあるとします(Article、Publication)。記事Aは、出版物1,2および3に記載されている。それらの出版物から削除して出版物Xに入れたいと思います.Djangoのドキュメントでは、オブジェクトの削除やオブジェクトの追加について扱いますが、オブジェクトを削除したり追加したりするのではなく、移動するだけです。どうすればいい?事前にオブジェクトを複数の多対多の関連付けからdjangoの別のものに移動するには?

おかげで、

J

答えて

2
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
あなただけの出版物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 docsでこれを行う方法の良い例です。

関連する問題