我有一些想要出现在 graphql 查询中的 django 模型通用关系字段。石墨烯是否支持泛型类型?
class Attachment(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
object_id = models.PositiveIntegerField()
content_object = GenericForeignKey('content_type', 'object_id')
file = models.FileField(upload_to=user_directory_path)
class Aparto(models.Model):
agency = models.CharField(max_length=100, default='Default')
features = models.TextField()
attachments = GenericRelation(Attachment)
石墨烯类:
class ApartoType(DjangoObjectType):
class Meta:
model = Aparto
class Query(graphene.ObjectType):
all = graphene.List(ApartoType)
def resolve_all(self, info, **kwargs):
return Aparto.objects.all()
schema = graphene.Schema(query=Query)
我希望附件字段出现在 graphql 查询结果中。仅显示代理和功能。
您需要公开Attachment
您的架构。石墨烯需要type
用于任何相关领域,因此它们也需要暴露。
此外,您可能想要解析相关的attachments
,因此您需要为它们添加解析器。
在您的石墨烯课程中,尝试:
class AttachmentType(DjangoObjectType):
class Meta:
model = Attachment
class ApartoType(DjangoObjectType):
class Meta:
model = Aparto
attachments = graphene.List(AttachmentType)
def resolve_attachments(root, info):
return root.attachments.all()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句