graphql-python / graphql-python/graphene

Null Boolean Scalar

Open
#1,353 0 comments 0 reactions 0 assignees View on GitHub
✨ enhancement
Dominant language
Python
Stars
8.2k
Forks
818
PR merge metrics
No merged PRs in 30d

Description

Im always frustrated when my model has a null able boolean field and the method `from graphene_django.types import construct_fields` returns a Boolean Scalar field which can only be True or False but not None

Some fields should not have a default for this types of boolean fields.

perhaps a scalar like this?

class NullBoolean(Scalar):
'''NullBoolean Scalar Description'''

@staticmethod
def serialize(dt):
return dt

@staticmethod
def parse_literal(node):
if isinstance(node, ast.StringValue):
if node.value == 'Yes':
return True
if node.value == 'No':
return False
return None

@staticmethod
def parse_value(value):
return value

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at construct_fields in graphene_django.types and trace how nullable model booleans are mapped. Confirm the expected GraphQL input and output behavior for None, True, and False, then add focused regression coverage. Done means nullable boolean fields preserve None without changing non-null boolean behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.