Django graphene - Невозможно выполнить запрос к полю объединения
В моем приложении есть 2 модели:
class Employee(models.Model):
first_name = models.CharField(max_length=100, null=False)
last_name = models.CharField(max_length=100, null=False)
email_id = models.EmailField(null=False)
class UserGroup(models.Model):
created_by = models.EmailField(null=False)
Группа пользователей UserGroup может быть создана Employee или "System". Итак, возможными значениями для "created_by"
являются:
"employeex@mail.com"
"System"
Теперь я хочу раскрыть это свойство в graphql. Из graphql я хочу иметь возможность получить свойства created_by
(такие как firstName
, lastName
и т.д.), если created_by
является сотрудником. В противном случае я хочу получить String в ответе graphql.
Вот что я сделал на данный момент:
import graphene
from graphene_django.types import DjangoObjectType
from models import Employee, UserGroup
class EmployeeObjectType(DjangoObjectType):
class Meta:
model = Employee
class UserGroupCreatedBy(graphene.Union):
class Meta:
types = (EmployeeObjectType, graphene.String, )
class UserGroupType(DjangoObjectType):
created_by = graphene.Field(UserGroupCreatedBy)
def resolve_created_by(self, info):
if self.created_by == "System":
return self.created_by
return Employee.objects.get(email_id=self.created_by)
class Meta:
model = UserGroup
query {
userGroups {
createdBy {
... on EmployeeType {
firstName
}
}
}
}
Когда я запрашиваю API graphql, вот ошибка, которую я получаю: