12

假设一个类似于这样的 Django 模型:

  class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.PROTECT)
    name = models.CharField(max_length=255)
    other_alias = models.CharField(blank=True,null=True,max_length=255)

    @property
    def profile_name(self):
        if self.other_alias:
            return self.other_alias
        else:
            return self.name

我在这个项目中使用了 Graphene-Django,并且我成功地创建了一个模式来描述 Profile 类型,并且可以通过 GraphQL 查询正确访问它。但是,我看不到任何方法可以使该属性也可用。

假设我应该从我的 Django 模型中删除所有属性样式的逻辑,而是只使用 GraphQL 和模型中的原始信息,然后在我使用 GraphQL 数据的地方执行该逻辑(例如,在使用它的 React 应用程序)?

4

1 回答 1

24

在 Profile 的架构对象中,您可以添加一个带有源的字符串字段:

class Profile(DjangoObjectType):
    profile_name = graphene.String(source='profile_name')
    class Meta:
        model = ProfileModel
        interfaces = (relay.Node, )
于 2017-03-23T05:32:14.783 回答