Skip to content

Commit e6563ef

Browse files
committed
query single object
1 parent 4c0db64 commit e6563ef

File tree

1 file changed

+33
-2
lines changed

1 file changed

+33
-2
lines changed

cookbook/ingredients/schema.py

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,43 @@ class Meta:
1616

1717

1818
class Query(object):
19+
category = graphene.Field(CategoryType,
20+
id=graphene.Int(),
21+
name=graphene.String())
1922
all_categories = graphene.List(CategoryType)
23+
24+
25+
ingredient = graphene.Field(IngredientType,
26+
id=graphene.Int(),
27+
name=graphene.String())
2028
all_ingredients = graphene.List(IngredientType)
2129

2230
def resolve_all_categories(self, info, **kwargs):
2331
return Category.objects.all()
2432

2533
def resolve_all_ingredients(self, info, **kwargs):
26-
# We can easily optimize query count in the resolve method
27-
return Ingredient.objects.select_related('category').all()
34+
return Ingredient.objects.all()
35+
36+
def resolve_category(self, info, **kwargs):
37+
id = kwargs.get('id')
38+
name = kwargs.get('name')
39+
40+
if id is not None:
41+
return Category.objects.get(pk=id)
42+
43+
if name is not None:
44+
return Category.objects.get(name=name)
45+
46+
return None
47+
48+
def resolve_ingredient(self, info, **kwargs):
49+
id = kwargs.get('id')
50+
name = kwargs.get('name')
51+
52+
if id is not None:
53+
return Ingredient.objects.get(pk=id)
54+
55+
if name is not None:
56+
return Ingredient.objects.get(name=name)
57+
58+
return None

0 commit comments

Comments
 (0)