mirror of
				https://github.com/graphql-python/graphene-django.git
				synced 2025-10-30 23:47:30 +03:00 
			
		
		
		
	* Update travis and tox * Use xenial distribution * Don't install coveralls twice * Add black and flake8 tox commands * Remove Python 3.5 test for Django master * Fix indent * Ignore migrations * Remove black for now * Run black formatting (#668) * Run black format * Update makefile * Add black to travis build
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import graphene
 | |
| from graphene_django.types import DjangoObjectType
 | |
| 
 | |
| from .models import Category, Ingredient
 | |
| 
 | |
| 
 | |
| class CategoryType(DjangoObjectType):
 | |
|     class Meta:
 | |
|         model = Category
 | |
| 
 | |
| 
 | |
| class IngredientType(DjangoObjectType):
 | |
|     class Meta:
 | |
|         model = Ingredient
 | |
| 
 | |
| 
 | |
| 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, context):
 | |
|         return Category.objects.all()
 | |
| 
 | |
|     def resolve_all_ingredients(self, context):
 | |
|         # We can easily optimize query count in the resolve method
 | |
|         return Ingredient.objects.select_related("category").all()
 | |
| 
 | |
|     def resolve_category(self, context, id=None, name=None):
 | |
|         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, context, id=None, name=None):
 | |
|         if id is not None:
 | |
|             return Ingredient.objects.get(pk=id)
 | |
| 
 | |
|         if name is not None:
 | |
|             return Ingredient.objects.get(name=name)
 | |
| 
 | |
|         return None
 |