Graphene-Django - объект 'int' не имеет атрибута 'pk'
Я новичок в работе с GraphQL и Django и пытаюсь протестировать на игровой площадке, но получаю ошибку 'int' object has no attribute 'pk'.
Мой models.py
class Managers(models.Model):
id = models.IntegerField(primary_key=True)
jointed_time = models.DateField()
started_event = models.IntegerField()
favourite_team = models.ForeignKey(
Teams, models.DO_NOTHING, db_column='favourite_team', blank=True, null=True)
player_first_name = models.TextField()
player_last_name = models.TextField()
player_region_id = models.IntegerField()
player_region_name = models.TextField()
player_region_iso_code_short = models.TextField()
player_region_iso_code_long = models.TextField()
team_name = models.TextField()
class Meta:
managed = False
db_table = 'managers'
class Gameweeks(models.Model):
id = models.IntegerField(primary_key=True)
name = models.TextField()
deadline_time = models.DateField()
deadline_time_epoch = models.IntegerField()
class Meta:
managed = False
db_table = 'gameweeks'
class ManagerGwStats(models.Model):
id = models.OneToOneField(Managers, models.DO_NOTHING, db_column='id',
primary_key=True)
active_chip = models.TextField(blank=True, null=True)
gameweek = models.ForeignKey(
Gameweeks, models.DO_NOTHING, db_column='gameweek')
points = models.IntegerField()
total_points = models.IntegerField()
rank = models.IntegerField()
rank_sort = models.IntegerField()
overall_rank = models.IntegerField()
bank = models.IntegerField()
value = models.IntegerField()
event_transfers = models.IntegerField()
event_transfers_cost = models.IntegerField()
points_on_bench = models.IntegerField()
class Meta:
managed = False
db_table = 'manager_gw_stats'
unique_together = (('id', 'gameweek'),)
Schema.py
class GameweekType(DjangoObjectType):
class Meta:
model = Gameweeks
fields = "__all__"
class ManagerType(DjangoObjectType):
class Meta:
model = Managers
fields = "__all__"
class ManagerGwStatType(DjangoObjectType):
class Meta:
model = ManagerGwStats
fields = "__all__"
class Query(graphene.ObjectType):
all_managers = graphene.List(ManagerType)
manager = graphene.Field(ManagerType, manager_id=graphene.Int())
all_gameweeks = graphene.List(GameweekType)
gameweek = graphene.Field(GameweekType, gameweek=graphene.Int())
manager_gw_stats = graphene.Field(ManagerGwStatType, manager_id=graphene.Int(),
gameweek=graphene.Int())
def resolve_all_managers(self, info):
return Managers.objects.all()
def resolve_manager(self, info, manager_id):
return Managers.objects.get(pk=manager_id)
def resolve_all_gameweeks(self, info):
return Gameweeks.objects.all()
def resolve_gameweek(self, info, gameweek):
return Gameweeks.objects.get(pk=gameweek)
def resolve_manager_gw_stats(self, info, manager_id, gameweek):
return ManagerGwStats.objects.get(id=manager_id, gameweek=gameweek)
schema = graphene.Schema(query=Query)
Когда я выполняю некоторые запросы на игровой площадке, запрос managerGWStats работает, пока я не попытаюсь углубиться в поле ID, где я получаю ошибку. Однако я могу получить доступ к данным игровых недель, поэтому я в замешательстве, поскольку модели для игровых недель и менеджеров в целом похожи. Я не уверен, что это как-то связано с композитным PK, который у меня есть в модели ManagerGWStats?
Изображения игровой площадки GraphQL