【发布时间】:2019-08-28 04:58:01
【问题描述】:
假设我的 Django 模型如下所示:
class User(Model):
username = CharField(...)
@property
def projects(self):
return # projects the user is assigned to
class Project(Model):
name = CharField(...)
@property
def users(self):
return # users assigned to the project
class Assignment(Model):
user = ForeignKey(User)
project = ForeignKey(Project)
(我故意没有为属性编写查询集以使代码更具可读性。)
我希望能够在 graphene-django 查询中看到这些属性。我的ModelType 类如下所示:
class UserType(DjangoObjectType):
class Meta:
model = User
projects = List(ProjectType)
class ProjectType(DjangoObjectType):
class Meta:
model = Project
users = List(UserType)
但是,此代码不起作用,因为 UserType 类中的 ProjectType 未定义,交换这些类并没有太大帮助。
我尝试完全不包含属性,在创建了所有ModelType 类之后,我尝试通过setattr() 添加属性。这样的 hack 肯定会设置属性,因此类具有完全相同的结构,但似乎为时已晚:根本无法从 GraphQL 访问属性。
现在我的想法已经用完了。有什么方法可以实现所需的行为?
【问题讨论】:
标签: python django graphql graphene-python