mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #22025 -- Listing app followed by app.Model in dumpdata command
When invoked as follows: $ python manage.py dumpdata blogapp blogapp.Tag Django would throw a TypeError. This commit fixes the problem and provides a test.
This commit is contained in:
		
				
					committed by
					
						 Baptiste Mispelon
						Baptiste Mispelon
					
				
			
			
				
	
			
			
			
						parent
						
							e0381cdf2e
						
					
				
				
					commit
					73f51e4113
				
			| @@ -102,8 +102,13 @@ class Command(BaseCommand): | ||||
|                         raise CommandError("Unknown model: %s.%s" % (app_label, model_label)) | ||||
|  | ||||
|                     app_list_value = app_list.setdefault(app_config, []) | ||||
|                     if model not in app_list_value: | ||||
|                         app_list_value.append(model) | ||||
|  | ||||
|                     # We may have previously seen a "all-models" request for | ||||
|                     # this app (no model qualifier was given). In this case | ||||
|                     # there is no need adding specific models to the list. | ||||
|                     if app_list_value is not None: | ||||
|                         if model not in app_list_value: | ||||
|                             app_list_value.append(model) | ||||
|                 except ValueError: | ||||
|                     if primary_keys: | ||||
|                         raise CommandError("You can only use --pks option with one model") | ||||
|   | ||||
							
								
								
									
										4
									
								
								tests/fixtures/tests.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								tests/fixtures/tests.py
									
									
									
									
										vendored
									
									
								
							| @@ -93,6 +93,10 @@ class FixtureLoadingTests(DumpDataAssertMixin, TestCase): | ||||
|         # Specify a dump that specifies Article both explicitly and implicitly | ||||
|         self._dumpdata_assert(['fixtures.Article', 'fixtures'], '[{"pk": 1, "model": "fixtures.category", "fields": {"description": "Latest news stories", "title": "News Stories"}}, {"pk": 2, "model": "fixtures.article", "fields": {"headline": "Poker has no place on ESPN", "pub_date": "2006-06-16T12:00:00"}}, {"pk": 3, "model": "fixtures.article", "fields": {"headline": "Time to reform copyright", "pub_date": "2006-06-16T13:00:00"}}, {"pk": 10, "model": "fixtures.book", "fields": {"name": "Achieving self-awareness of Python programs", "authors": []}}]') | ||||
|  | ||||
|         # Specify a dump that specifies Article both explicitly and implicitly, | ||||
|         # but lists the app first (#22025). | ||||
|         self._dumpdata_assert(['fixtures', 'fixtures.Article'], '[{"pk": 1, "model": "fixtures.category", "fields": {"description": "Latest news stories", "title": "News Stories"}}, {"pk": 2, "model": "fixtures.article", "fields": {"headline": "Poker has no place on ESPN", "pub_date": "2006-06-16T12:00:00"}}, {"pk": 3, "model": "fixtures.article", "fields": {"headline": "Time to reform copyright", "pub_date": "2006-06-16T13:00:00"}}, {"pk": 10, "model": "fixtures.book", "fields": {"name": "Achieving self-awareness of Python programs", "authors": []}}]') | ||||
|  | ||||
|         # Same again, but specify in the reverse order | ||||
|         self._dumpdata_assert(['fixtures'], '[{"pk": 1, "model": "fixtures.category", "fields": {"description": "Latest news stories", "title": "News Stories"}}, {"pk": 2, "model": "fixtures.article", "fields": {"headline": "Poker has no place on ESPN", "pub_date": "2006-06-16T12:00:00"}}, {"pk": 3, "model": "fixtures.article", "fields": {"headline": "Time to reform copyright", "pub_date": "2006-06-16T13:00:00"}}, {"pk": 10, "model": "fixtures.book", "fields": {"name": "Achieving self-awareness of Python programs", "authors": []}}]') | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user