Глядя на graphene_django, я вижу, что у них есть группа распознавателей, выбирающих поля модели django, отображающие их на типы графена.
У меня есть подкласс JSONField Я также хотел быбыть взятым.
:
# models
class Recipe(models.Model):
name = models.CharField(max_length=100)
instructions = models.TextField()
ingredients = models.ManyToManyField(
Ingredient, related_name='recipes'
)
custom_field = JSONFieldSubclass(....)
# schema
class RecipeType(DjangoObjectType):
class Meta:
model = Recipe
custom_field = ???
Я знаю, что мог бы написать отдельную пару полей и преобразователей для запроса, но я бы предпочел, чтобы она была доступна как часть схемы дляэта модель.
Что я понимаю, что могу сделать:
class RecipeQuery:
custom_field = graphene.JSONString(id=graphene.ID(required=True))
def resolve_custom_field(self, info, **kwargs):
id = kwargs.get('id')
instance = get_item_by_id(id)
return instance.custom_field.to_json()
Но - это означает отдельное путешествие туда и обратно, чтобы получить идентификатор, а затем получить поле custom_field для этого элемента, верно?
Есть ли способ, чтобы я мог видеть его как часть схемы RecipeType?