python - Graphene-Django 和模型属性

标签 python django graphene-python

假设一个类似于此的 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 应用程序中)?

最佳答案

在配置文件的模式对象中,您可以添加一个带有源的字符串字段:

class Profile(DjangoObjectType):
    profile_name = graphene.String(source='profile_name')
    class Meta:
        model = ProfileModel
        interfaces = (relay.Node, )

关于python - Graphene-Django 和模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42963703/

相关文章:

python - 查找多列中出现的相同值

python - 编写代码对多个 pandas DataFrame 执行相同的操作

django - 配置 Django runserver 以在非应用程序目录中提供静态文件?

django - 奇怪的行为导致我的运行服务器不响应

python - Graphite 烯 Django 返回空值

graphql - 突变 - 批量创建对象

Python:读取 csv 文件并将列保存为变量

python - 如何将数据插入 Django 用户模型?

mysql - Django 打印查询

python - 如何使用 django_graphene 解析 django 模型的自定义字段?