Django - 编辑默认石墨烯集查询
Django - edit default graphene Set query
我正在使用 graphql 构建一个 django 应用程序,我有两个模型
列模型:
class Column(models.Model):
name = models.CharField(max_length=100)
任务模型:
class Task(models.Model):
column = models.ForeignKey(Column, on_delete=models.CASCADE)
content = models.CharField(max_length=255)
position = models.IntegerField()
我有一个查询来查询所有列及其任务
class ColumnType(DjangoObjectType):
class Meta:
model = Column
class Query(object):
columns = graphene.List(ColumnType)
def resolve_columns(self, info, **kwargs):
return Column.objects.all()
我可以通过以下方式查询:
{
columns {
id
taskSet{
content
}
}
}
但是这样做我无法将字段添加到 taskSet 函数,所以我想添加一个过滤器,它只会获得前 20 个任务
如果您总是只想显示前 20 个结果,您可以试试这个:
class Query(object):
columns = graphene.List(ColumnType)
def resolve_columns(self, info, **kwargs):
return Column.objects.all()[0:20]
或者,如果您想在 运行 查询时提供过滤器编号,您可以尝试这样的操作:
class Query(object):
columns = graphene.List(ColumnType, myFilter=Int())
def resolve_columns(self, info, **kwargs):
my_filter = kwargs.get('myFilter')
if my_filter is not None:
return Column.objects.all()[0:my_filter]
return None
并这样称呼它:
{
columns {
id
taskSet(myFilter:20){
content
}
}
}
我正在使用 graphql 构建一个 django 应用程序,我有两个模型
列模型:
class Column(models.Model):
name = models.CharField(max_length=100)
任务模型:
class Task(models.Model):
column = models.ForeignKey(Column, on_delete=models.CASCADE)
content = models.CharField(max_length=255)
position = models.IntegerField()
我有一个查询来查询所有列及其任务
class ColumnType(DjangoObjectType):
class Meta:
model = Column
class Query(object):
columns = graphene.List(ColumnType)
def resolve_columns(self, info, **kwargs):
return Column.objects.all()
我可以通过以下方式查询:
{
columns {
id
taskSet{
content
}
}
}
但是这样做我无法将字段添加到 taskSet 函数,所以我想添加一个过滤器,它只会获得前 20 个任务
如果您总是只想显示前 20 个结果,您可以试试这个:
class Query(object):
columns = graphene.List(ColumnType)
def resolve_columns(self, info, **kwargs):
return Column.objects.all()[0:20]
或者,如果您想在 运行 查询时提供过滤器编号,您可以尝试这样的操作:
class Query(object):
columns = graphene.List(ColumnType, myFilter=Int())
def resolve_columns(self, info, **kwargs):
my_filter = kwargs.get('myFilter')
if my_filter is not None:
return Column.objects.all()[0:my_filter]
return None
并这样称呼它:
{
columns {
id
taskSet(myFilter:20){
content
}
}
}