TypeError: Object of type Restaurant is not JSON serializable!!! Подскажите пожалуйста, пишу тесты для drf, получаю такую ошибку

class CreatePizzaTestt(APITestCase): def setUp(self): self.restaurant = Restaurant.objects.create(name='Print', address='1') Restaurant.objects.create(name='Print12', address='1') self.valid = { 'ресторан': self.restaurant, 'пицца': 'Маффин', 'сыр': 'Маффин', 'тесто': 'Памерон', 'ингредиент': 'Белый' }

def test_restaurant_create(self):
    response = self.client.post(
        reverse('create_pizza'), self.valid)
    self.assertEqual(response.status_code, status.HTTP_201_CREATED)

Причина

Параметр data метода client.post должен быть словарем или списком python со значениями, которые могут быть сериализуемыми, например str, bool, int, float, ...

Однако, значение поля restaurant является экземпляром Restaurant, который не является сериализуемым.

Решение

Измените значение поля restaurant на restautant.id

self.valid = {
    'restaurant': self.restaurant.id,
    ...
}
Вернуться на верх