mirror of
				https://github.com/graphql-python/graphene-django.git
				synced 2025-10-31 16:07:36 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   import graphene
 | |
| 
 | |
|   from graphene_django.types import DjangoObjectType
 | |
| 
 | |
|   from cookbook.ingredients.models import Category, Ingredient
 | |
| 
 | |
| 
 | |
|   class CategoryType(DjangoObjectType):
 | |
|       class Meta:
 | |
|           model = Category
 | |
|           fields = '__all__'
 | |
| 
 | |
| 
 | |
|   class IngredientType(DjangoObjectType):
 | |
|       class Meta:
 | |
|           model = Ingredient
 | |
|           fields = '__all__'
 | |
| 
 | |
| 
 | |
|   class Query(object):
 | |
|       category = graphene.Field(CategoryType,
 | |
|                                 id=graphene.Int(),
 | |
|                                 name=graphene.String())
 | |
|       all_categories = graphene.List(CategoryType)
 | |
| 
 | |
| 
 | |
|       ingredient = graphene.Field(IngredientType,
 | |
|                                   id=graphene.Int(),
 | |
|                                   name=graphene.String())
 | |
|       all_ingredients = graphene.List(IngredientType)
 | |
| 
 | |
|       def resolve_all_categories(self, info, **kwargs):
 | |
|           return Category.objects.all()
 | |
| 
 | |
|       def resolve_all_ingredients(self, info, **kwargs):
 | |
|           return Ingredient.objects.all()
 | |
| 
 | |
|       def resolve_category(self, info, **kwargs):
 | |
|           id = kwargs.get('id')
 | |
|           name = kwargs.get('name')
 | |
| 
 | |
|           if id is not None:
 | |
|               return Category.objects.get(pk=id)
 | |
| 
 | |
|           if name is not None:
 | |
|               return Category.objects.get(name=name)
 | |
| 
 | |
|           return None
 | |
| 
 | |
|       def resolve_ingredient(self, info, **kwargs):
 | |
|           id = kwargs.get('id')
 | |
|           name = kwargs.get('name')
 | |
| 
 | |
|           if id is not None:
 | |
|               return Ingredient.objects.get(pk=id)
 | |
| 
 | |
|           if name is not None:
 | |
|               return Ingredient.objects.get(name=name)
 | |
| 
 | |
|           return None |