From 8bf6b22765d85fd8db919be0a618e4406a1d2d5c Mon Sep 17 00:00:00 2001 From: Syrus Akbary Date: Sun, 14 Aug 2016 15:45:41 -0700 Subject: [PATCH] Updated UPGRADE guide --- UPGRADE-v1.0.md | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/UPGRADE-v1.0.md b/UPGRADE-v1.0.md index eda981e3..3f153e99 100644 --- a/UPGRADE-v1.0.md +++ b/UPGRADE-v1.0.md @@ -11,7 +11,7 @@ We have done our best to provide backwards compatibility with deprecated APIs. ## Interfaces -For implementing an Interface in a ObjectType, you have to add also `ObjectType`. +For implementing an Interface in a ObjectType, you have to it onto `Meta.interfaces`. Like: @@ -21,11 +21,12 @@ from graphene import Interface, ObjectType, String class Character(Interface): name = String() -class Human(Character): # Old way, not working anymore +class Human(Character): # Old way, Human will still be an Interface pass -class Droid(Character, ObjectType): # New way, you have to specify the ObjectType - pass +class Droid(ObjectType): # New way, you have to specify the ObjectType + class Meta: + interfaces = (Character, ) ``` ## Mutations @@ -49,7 +50,7 @@ class ReverseString(Mutation): return ReverseString(reversed=reversed) class Query(ObjectType): - reverse_string = graphene.Field(ReverseString) # Old way, not working anymore + reverse_string = graphene.Field(ReverseString) # Old way, will not include the mutation arguments by default reverse_string = ReverseString.Field() ``` @@ -64,7 +65,7 @@ Example: from graphene import ObjectType, relay class Query(ObjectType): - node = relay.NodeField() # Old way, NodeField no longer exists + node = relay.NodeField() # Old way, NodeField no longer exists. Use Node.Field node = relay.Node.Field() # New way ``` @@ -77,32 +78,31 @@ explicity. The Django integration with Graphene now have an independent package: `graphene-django`. For installing, you have to replace the old `graphene[django]` with `graphene-django`. -### Importing - -As the package is now independent, you have to import now from `graphene_django`. +* As the package is now independent, you have to import now from `graphene_django`. +* **DjangoNode no longer exists**, please use `relay.Node` instead: ```python -from graphene.contrib.django import DjangoObjectType # Old way of importing -from graphene_django import DjangoObjectType # New way +from graphene.relay import Node +from graphene_django import DjangoObjectType + +class Droid(DjangoObjectType): + class Meta: + interfaces = (Node, ) ``` -### Attributes - -Also, the `Meta` option attrs have changed: -* `only_fields` is now `fields`. -* `exclude_fields` is now `exclude`. - - ## SQLAlchemy The SQLAlchemy integration with Graphene now have an independent package: `graphene-sqlalchemy`. For installing, you have to replace the old `graphene[sqlalchemy]` with `graphene-sqlalchemy`. -### Importing - -As the package is now independent, you have to import now from `graphene_sqlalchemy`. +* As the package is now independent, you have to import now from `graphene_sqlalchemy`. +* **SQLAlchemyNode no longer exists**, please use `relay.Node` instead: ```python -from graphene.contrib.sqlalchemy import SQLAlchemyObjectType # Old way of importing -from graphene_sqlalchemy import SQLAlchemyObjectType # New way +from graphene.relay import Node +from graphene_sqlalchemy import SQLAlchemyObjectType + +class Droid(SQLAlchemyObjectType): + class Meta: + interfaces = (Node, ) ```