mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #4001 -- Added dynamic save_m2m method() to forms created with form_for_model and form_for_instance on save(commit=False).
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5804 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -332,6 +332,28 @@ Create a new article, with no categories, via the form. | ||||
| >>> new_art.categories.all() | ||||
| [] | ||||
|  | ||||
| Create a new article, with categories, via the form, but use commit=False. | ||||
| The m2m data won't be saved until save_m2m() is invoked on the form. | ||||
| >>> ArticleForm = form_for_model(Article) | ||||
| >>> f = ArticleForm({'headline': u'The walrus was Paul', 'pub_date': u'1967-11-01', | ||||
| ...     'writer': u'1', 'article': u'Test.', 'categories': [u'1', u'2']}) | ||||
| >>> new_art = f.save(commit=False) | ||||
|  | ||||
| # Manually save the instance  | ||||
| >>> new_art.save() | ||||
| >>> new_art.id | ||||
| 4 | ||||
|  | ||||
| # The instance doesn't have m2m data yet | ||||
| >>> new_art = Article.objects.get(id=4) | ||||
| >>> new_art.categories.all() | ||||
| [] | ||||
|  | ||||
| # Save the m2m data on the form | ||||
| >>> f.save_m2m() | ||||
| >>> new_art.categories.all() | ||||
| [<Category: Entertainment>, <Category: It's a test>] | ||||
|  | ||||
| Here, we define a custom Form. Because it happens to have the same fields as | ||||
| the Category model, we can use save_instance() to apply its changes to an | ||||
| existing Category instance. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user