Graphene-django-使用枚举来变异类型

时间:2020-09-02 22:40:21

标签: python django graphene-python graphene-django

所以,我有以下模型:

class Semester(models.Model):
    course = models.ManyToManyField(Course, through='CourseSemester')

    class SemesterType(models.TextChoices):
        A = 'A', 'Winter'
        B = 'B', 'Spring'
        SUMMER = 'SU', 'Summer'

    name = models.CharField(
        max_length=200,
        choices=SemesterType.choices,
        default=SemesterType.A,
    )
    year = models.IntegerField()

我尝试添加一个变异以添加一个新的学期。 Graphene-django似乎会自动为我生成一个Enum字段,但是如何在参数中获取它?

根据github问题,应该使用SemesterType._meta.fields['name']之类的东西,但即使将其包装在graphene.Argument中,我也无法正确处理。

可以告诉Graphene不要将其转换为Enum,但是我宁愿避免这种情况。

任何提示如何正确处理?

1 个答案:

答案 0 :(得分:1)

您应该添加 convert_choices_to_enum = False 到您的DjangoObjectType

更多信息,请参见Choices to Enum conversion section

中的文档