mirror of
				https://github.com/encode/django-rest-framework.git
				synced 2025-10-26 05:31:07 +03:00 
			
		
		
		
	Added GenericViewSet and docs tweaking
This commit is contained in:
		
							parent
							
								
									f2466418dd
								
							
						
					
					
						commit
						31f94ab409
					
				|  | @ -136,9 +136,15 @@ The `ViewSet` class inherits from `APIView`.  You can use any of the standard at | ||||||
| 
 | 
 | ||||||
| The `ViewSet` class does not provide any implementations of actions.  In order to use a `ViewSet` class you'll override the class and define the action implementations explicitly. | The `ViewSet` class does not provide any implementations of actions.  In order to use a `ViewSet` class you'll override the class and define the action implementations explicitly. | ||||||
| 
 | 
 | ||||||
|  | ## GenericViewSet | ||||||
|  | 
 | ||||||
|  | The `GenericViewSet` class inherits from `GenericAPIView`, and provides the default set of `get_object`, `get_queryset` methods and other generic view base behavior, but does not include any actions by default. | ||||||
|  | 
 | ||||||
|  | In order to use a `GenericViewSet` class you'll override the class and either mixin the required mixin classes, or define the action implementations explicitly. | ||||||
|  | 
 | ||||||
| ## ModelViewSet | ## ModelViewSet | ||||||
| 
 | 
 | ||||||
| The `ModelViewSet` class inherits from `GenericAPIView` and includes implementations for various actions, by mixing in the behavior of the | The `ModelViewSet` class inherits from `GenericAPIView` and includes implementations for various actions, by mixing in the behavior of the various mixin classes. | ||||||
| 
 | 
 | ||||||
| The actions provided by the `ModelViewSet` class are `.list()`, `.retrieve()`,  `.create()`, `.update()`, and `.destroy()`. | The actions provided by the `ModelViewSet` class are `.list()`, `.retrieve()`,  `.create()`, `.update()`, and `.destroy()`. | ||||||
| 
 | 
 | ||||||
|  | @ -188,17 +194,18 @@ Again, as with `ModelViewSet`, you can use any of the standard attributes and me | ||||||
| 
 | 
 | ||||||
| # Custom ViewSet base classes  | # Custom ViewSet base classes  | ||||||
| 
 | 
 | ||||||
| Any standard `View` class can be turned into a `ViewSet` class by mixing in `ViewSetMixin`.  You can use this to define your own base classes. | You may need to provide custom `ViewSet` classes that do not have the full set of `ModelViewSet` actions, or that customize the behavior in some other way. | ||||||
| 
 | 
 | ||||||
| ## Example | ## Example | ||||||
| 
 | 
 | ||||||
| For example, we can create a base viewset class that provides `retrieve`, `update` and `list` operations: | To create a base viewset class that provides `create`, `list` and `retrieve` operations, inherit from `GenericViewSet`, and mixin the required actions: | ||||||
|  | 
 | ||||||
|  |     class CreateListRetrieveViewSet(mixins.CreateMixin, | ||||||
|  |                                     mixins.ListMixin, | ||||||
|  |                                     mixins.RetrieveMixin, | ||||||
|  |                                     viewsets.GenericViewSet): | ||||||
|  |         pass | ||||||
| 
 | 
 | ||||||
|     class RetrieveUpdateListViewSet(mixins.RetrieveModelMixin, |  | ||||||
|                                     mixins.UpdateModelMixin, |  | ||||||
|                                     mixins.ListModelMixin, |  | ||||||
|                                     viewsets.ViewSetMixin, |  | ||||||
|                                     generics.GenericAPIView): |  | ||||||
|         """ |         """ | ||||||
|         A viewset that provides `retrieve`, `update`, and `list` actions. |         A viewset that provides `retrieve`, `update`, and `list` actions. | ||||||
|          |          | ||||||
|  | @ -207,6 +214,6 @@ For example, we can create a base viewset class that provides `retrieve`, `updat | ||||||
|         """ |         """ | ||||||
|         pass |         pass | ||||||
| 
 | 
 | ||||||
| By creating your own base `ViewSet` classes, you can provide common behavior that can be reused in multiple views across your API. | By creating your own base `ViewSet` classes, you can provide common behavior that can be reused in multiple viewsets across your API. | ||||||
| 
 | 
 | ||||||
| [cite]: http://guides.rubyonrails.org/routing.html | [cite]: http://guides.rubyonrails.org/routing.html | ||||||
|  |  | ||||||
|  | @ -108,6 +108,15 @@ class ViewSet(ViewSetMixin, views.APIView): | ||||||
|     pass |     pass | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | class GenericViewSet(ViewSetMixin, generics.GenericAPIView): | ||||||
|  |     """ | ||||||
|  |     The GenericViewSet class does not provide any actions by default, | ||||||
|  |     but does include the base set of generic view behavior, such as | ||||||
|  |     the `get_object` and `get_queryset` methods. | ||||||
|  |     """ | ||||||
|  |     pass | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| class ReadOnlyModelViewSet(mixins.RetrieveModelMixin, | class ReadOnlyModelViewSet(mixins.RetrieveModelMixin, | ||||||
|                            mixins.ListModelMixin, |                            mixins.ListModelMixin, | ||||||
|                            ViewSetMixin, |                            ViewSetMixin, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user