РАМКА ОТДЫХА DJANGO API: методы схемы - PullRequest
0 голосов
/ 04 марта 2019

Django 1.11.3, python 3.6

У меня есть 2 класса в моем view.py:

class ProductList(generics.ListAPIView):

class SampleList(generics.ListAPIView):

Обратите внимание на тот же суперкласс.Может иметь значение: Product - это актуальная модель, Sample - нет, SampleList - это просто метод, который вызывает Product.objects.all() (тот же код, что и в ProductList)

Весь код внутри этих классов, кроме имен классовявляется ИДЕНТИЧНЫМ (включая сериализатор) - я просто скопировал класс и переименовал копию).

Клиент, прежде чем он нажмет URL для этих двух, получает схему

    schema = self.client.get(self.myAppApiUrl)

    #works, returns the results
    result1 = self.client.action(schema, ["products", "list"])

    params = {"id" : some_id, }

    #fails with this: coreapi.exceptions.LinkLookupError: Index ['samples']['list'] did not reference a link. Key 'list' was not found.
    result2 = self.client.action(schema, ["samples", "list"], params)

Когда я печатаю "schema ", я вижу

   products: {
        list([page])
    }
    samples: {
        read(id)
    }
  1. Мои вопросы: с чем связано добавление "list" к schema в первом случае и "read" во втором случае?И как я могу добавить «список» во втором случае?Может быть, какое-то обновление схемы нужно как-то сделать?Веб-сервер API был перезапущен.

  2. Что означает это сообщение "Key 'list' was not found"?Этот сбой как-то связан с пройденным params?Удаление params из клиентского вызова ничего не меняет.

  3. Мне также несколько любопытно, что это за "page" в list и что добавляет это, ноэто не важно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...