Skip to content

📋 GraphQL-only Options

📋 Options

Option Description
--graphql-no-typename Exclude __typename field from generated GraphQL models.

--graphql-no-typename

Exclude __typename field from generated GraphQL models.

The --graphql-no-typename flag prevents the generator from adding the typename__ field (aliased to __typename) to generated models. This is useful when using generated models for GraphQL mutations, as servers typically don't expect this field in input data.

Usage

datamodel-codegen --input schema.json --graphql-no-typename # (1)!
  1. --graphql-no-typename - the option documented here
Examples

Input Schema:

type Book {
  id: ID!
  title: String
}

interface Node {
  id: ID!
}

input BookInput {
  title: String!
}

Output:

# generated by datamodel-codegen:
#   filename:  no-typename.graphql
#   timestamp: 2019-07-26T00:00:00+00:00

from __future__ import annotations

from typing import TypeAlias

from pydantic import BaseModel

Boolean: TypeAlias = bool
"""
The `Boolean` scalar type represents `true` or `false`.
"""


ID: TypeAlias = str
"""
The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID.
"""


String: TypeAlias = str
"""
The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
"""


class Node(BaseModel):
    id: ID


class Book(BaseModel):
    id: ID
    title: String | None = None


class BookInput(BaseModel):
    title: String