Graphene-django - 使用枚举变异类型
Posted
技术标签:
【中文标题】Graphene-django - 使用枚举变异类型【英文标题】:Graphene-django - Mutating types with enums 【发布时间】:2020-12-22 03:31:13 【问题描述】:所以,我有以下模型:
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】:你应该添加
convert_choices_to_enum = False
给你的DjangoObjectType
更多信息在Choices to Enum conversion section的文档中
【讨论】:
是的,我知道。这可行,但我宁愿选择直接访问生成的枚举。以上是关于Graphene-django - 使用枚举变异类型的主要内容,如果未能解决你的问题,请参考以下文章
使用graphene-django,是不是可以定义两个节点之间的循环关系?