Как отобразить результат на странице и отфильтровать его по полю ForeignKey в Graphql? - PullRequest
0 голосов
/ 10 апреля 2019

Я пишу GraphI API в Джанго.Я хочу сделать поиск, как в примере ниже.Я новичок в использовании graphql, и я знаю только, как вернуть весь объект.Итак, я хотел бы знать 1) как разбить результат на разные страницы, каждая страница которых содержит 10 результатов.2) Как я могу отфильтровать результат по полю ForeignKey?Мол, я хочу отфильтровать Expense.objects по ExpenseDetail.date, а также вывести его.Я попытался использовать expense_set, чтобы выполнить поиск, но ошибка отчета graphql.Как я могу решить две вышеупомянутые проблемы.Большое спасибо.

Models.py (значительно упростили):

class Expense(BaseModel):
    id = models.AutoField()
    price = models.FloatField()
class ExpenseDetail(BaseModel):
    id = models.CharField()
    date = models.DateField()
    expense = models.ForeignKey(Expense, on_delete=models.CASCADE, default=None, null=True, blank=True)

Schema.py:

class ExpenseType(DjangoObjectType):
    class Meta:
        model = Expense

class Query(graphene.ObjectType):
    list_expense = graphene.List(ExpenseType, search=graphene.String())

    def resolve_list_expense(self, info, search=None,  **Kwargs):
        return Expense.objects.all()

Graphql:

query{
  listExpense(ExpenseId:"", page:1, pageSize:10, startdate:"", enddate:"") {
    page
    pageSize
    totalSize
    expense_set{
               date
               }
  }
}
...