我花了几个小时在这上面,没有幸运的是它看起来像是一个bug。除了"type“之外的所有字段都会出现在我的查询结果中,并且"type”和"issuer“之间没有区别例如,两者都是外键。当类型存在时,石墨烯随机删除它,当我在解析器中打印它时,我看到它有一个值。当我试图查询graphiql中的字段类型时,我得到以下错误:"Cannot query field \" type \“on type \”Post\“有什么想法吗?
class T(models.Model):
type=models.CharField(default="type 1",null=False,blank=False,max_length=40)
def str(self):
return self.type
class Post(models.Model):
slug=models.SlugField(unique=True)
issuer=models.ForeignKey(User,on_delete=models.SET_NULL,blank=False,null=True,related_name="posts")
date_created=models.DateTimeField(default=timezone.now)
last_edited=models.DateTimeField(null=True)
num_interests = models.IntegerField(verbose_name="Number of interests so far",default=0)
status=models.CharField(max_length=30,default="posted")
tags=TaggableManager()
title=models.CharField (max_length=200,blank=False)
description =models.TextField(max_length=settings.MAX_TEXTAREA_LEN,default="",
validators=[MaxLengthValidatorFactory(settings.MAX_TEXTAREA_LEN)],blank=False)
goodUntil = models.DateField(verbose_name=_("Date"),default=datetime.now()+timedelta(days=7))
subjects=models.ManyToManyField(to=Subject,related_name='posts',blank=False)
type=models.ForeignKey(T,on_delete=models.SET_NULL,blank=False,null=True,related_name="type")
发布于 2018-04-26 06:08:35
如果我没记错的话,这是石墨烯中的一个错误--石墨烯在内部使用type
,这会干扰具有该名称的模型字段。我相信我可能在过去遇到过这个问题,并通过重命名我的模型字段来解决它。
例如,在您的示例中,重命名为type
-> post_type
。
石墨烯有这个限制是可以理解的,因为__type
在graphQL中有特定的含义。例如,这是一个名为“MyType”的DjangoObjectType
的有效查询:
{ __type(name:"MyType") {
fields {
name
description
}
}
}
https://stackoverflow.com/questions/50031935
复制相似问题