如何重命名从 Django 模型自动生成的 GraphQL 类型字段?

Posted

技术标签:

【中文标题】如何重命名从 Django 模型自动生成的 GraphQL 类型字段?【英文标题】:How to rename GraphQL type field autogenerated from Django model? 【发布时间】:2020-05-07 16:42:26 【问题描述】:

我在 Django 中有一个模型,其中包含一些字段。让我们说这个模范:

# <app>/models.py

from django.db import models


class Something(models.Model):
    first_field = models.Charfield()
    second_field = models.Charfield()

我使用 graphene_django 中的 DjangoObjectType 将 Django 模型映射到 GraphQL 类型。

# <app>/schema.py

from graphene_django import DjangoObjectType
from .models import Something


class SomethingType(DjangoObjectType):
    class Meta:
        model = Something

由于auto camelcasing 模型字段second_field 导致GraphQL 类型中的secondField。现在我想将 GraphQL 类型字段从 secondField 重命名为 somethingFancy。我怎样才能最轻松地完成这项工作?

【问题讨论】:

【参考方案1】:

您可以使用 DjangoObjectType 覆盖任何字段。您的代码可能如下所示。

class SomethingType(DjangoObjectType):

    class Meta:
       model = Something


   something_fency = graphene.String()

   def resolve_something_fency(self, info):
       return self.second_field

更多详情请查看docs

【讨论】:

以上是关于如何重命名从 Django 模型自动生成的 GraphQL 类型字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Django 重命名模型?

Django - 如何使用 South 重命名模型字段?

当有外部引用时,如何重命名 Django 模型的文件夹?

在不破坏现有迁移的情况下重命名 Django 模型

如何重命名 Django 应用程序并将数据从一个应用程序迁移到另一个应用程序

Django 1.8:删除/重命名数据迁移中的模型字段