私はgraphene
とgraphene-django
を使っていますが、選択肢にはIntegerField
という問題があります。 graphene
はEnum
を作成し、値が1の場合は出力が「A_1」になります。値が2の場合は「A_2」、以下同様です。例:グラフェンでdjangoの選択肢を上書きする
# model
class Foo(models.Model):
score = models.IntegerField(choices=((1, 1), (2, 2), (3, 3), (4, 4), (5, 5)))
# query
query {
foo {
score
}
}
# response
{
"data": {
"foo": {
"source": "A_1"
}
}
}
選択値を変換する関数が見つかりました。
def convert_choice_name(name):
name = to_const(force_text(name))
try:
assert_valid_name(name)
except AssertionError:
name = "A_%s" % name
return name
そしてassert_valid_name
は、この正規表現がありますので
r'^[_a-zA-Z][_a-zA-Z0-9]*$'
、番号で始まる何でも、それは "_..." に変換されます。
この出力をどのように上書きできますか?