Union types in connections: 'UnionOptions' object has no attribute 'model'
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
Inizia da SQLAlchemyConnectionField.wrap_resolve() e dalla sua proprietà model, quindi riproduci la query segnalata usando una union Graphene di classi SQLAlchemyObjectType. Traccia il modo in cui i dati _meta della union raggiungono il resolver della connection; è necessario definire come devono essere gestite le connection con più modelli sottostanti senza l’errore UnionOptions.model segnalato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Are there plans to add support for union types in connections? I have a setup like the following:
class Cat(SQLAlchemyObjectType):
class Meta:
model = CatModel
interfaces = (relay.Node,)
class Dog(SQLAlchemyObjectType):
class Meta:
model = DogModel
interfaces = (relay.Node,)
class Animal(graphene.Union):
class Meta:
types = (Cat, Dog)
class Query(graphene.ObjectType):
animals = SQLAlchemyConnectionField(Animal)
and when I try to query for animals, I get the error: 'UnionOptions' object has no attribute 'model'.
I traced this back to the self.model call in wrap_resolve():
def wrap_resolve(self, parent_resolver):
return partial(
self.connection_resolver,
parent_resolver,
get_nullable_type(self.type),
self.model,
)
def model(self):
return get_nullable_type(self.type)._meta.node._meta.model
When the type is a union, get_nullable_type(self.type)._meta.node._meta returns the union class (in this case Animal). In order to get a model from that, we have to drill down into its types (e.g. get_nullable_type(self.type)._meta.node._meta.types[0]._meta.model) but because it's a union, it will contain multiple models.
Any ideas how to get around this?
- Lingua principale
- Python
- Stelle
- 985
- Fork
- 224
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di graphql-python/graphene-sqlalchemy
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
graphql-python/graphene-sqlalchemy#422 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
graphql-python/graphene-sqlalchemy#419 · 3 commenti ·
Tutte le issue di graphql-python/graphene-sqlalchemy
Issue simili
-
essnmx good first issue
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 95/100
-
[Feature] 奇物选择添加优先级 Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
syfoud/Simulated_Scepter#174 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Giskard-AI/giskard-oss#2840 · 1 commento ·
-
A claim comment carrying the issue number is silently declined while the workflow reports success Apertaarea: repo bug perceived difficulty: 2
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
yeti-platform/yeti#1380 ·