2017-09-12 55 views
0

我不理解如何在石墨烯中的ConnectionField中使用自定義字段。我有類似:石墨烯中的自定義連接字段

class ShipConnection(Connection): 
    extra = String() 

    class Meta: 
     node = Ship 

SHIPS = ['Tug boat', 'Row boat', 'Canoe'] 

class Query(AbstractType): 
    ships = relay.ConnectionField(ShipConnection) 

    def resolve_ships(self, args, context, info): 
     return ShipConnection(
      extra='Some extra text', 
      edges=??? 
     ) 

通常情況下,你會說:

def resolve_ships(self, args, context, info): 
     return SHIPS 

但你如何返回額外東西,返回一個列表?

回答

1

答案原來是使用石墨烯的ConnectionField類的未公開類別方法,稱爲resolve_connection。以下着作:

def resolve_ships(self, args, context, info): 
    field = relay.ConnectionField.resolve_connection(
     ShipConnection, 
     args, 
     SHIPS 
    ) 

    field.extra = 'Whatever' 
    return field