graphql-python / graphql-python/graphene-django

Support Django 5 GeneratedField

Open
#1,494 2 comments 11 reactions 0 assignees View on GitHub
✨enhancement
Dominant language
Python
Stars
4.4k
Forks
760
PR merge metrics
No merged PRs in 30d

Description

**Note: for support questions, please use stackoverflow**. This repository's issues are reserved for feature requests and bug reports.

* **What is the current behavior?**

I used Django 5's GenerativeField to define one of my fields

```
quantity = models.PositiveIntegerField()

unit_price = models.DecimalField(
max_digits=12,
decimal_places=2,
null=True,
blank=True,
)

total_price = models.GeneratedField(
expression=models.F("quantity") * models.F("unit_price"),
output_field=models.DecimalField(
max_digits=12,
decimal_places=2,
),
db_persist=True,
null=True,
blank=True,
)
```

When I try to pass the value through the` DjangoObjectType`, I received the following error:

Exception: Don't know how to convert the Django field ModelName.total_price ()

* **If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem** via
a github repo, https://repl.it or similar (you can use this template as a starting point: https://repl.it/@jkimbo/Graphene-Django-Example).

1. Create a model with a `GeneratedField`
2. Create a `DjangoObjectType` for the model created in step 1
3. Error will appear when trying to query the generated field in GraphQL

* **What is the expected behavior?**
The expected behavior is for `DjangoObjectType` to use the `output_field` type defined in the GeneratedField.

* **What is the motivation / use case for changing the behavior?**
We would like to leverage the new `GeneratedField` functionality in Django 5.

* **Please tell us about your environment:**

- Version: 14,2,1
- Platform: macOS Sonoma
- Django_version = 5.0.1
-Graphene_version = 3.3

* **Other information** (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.