Как передать ForeignKey в POST запрос?

Рейтинг: 0Ответов: 1Опубликовано: 05.02.2023

Допустим, есть модель Products, и есть у нее поле product_type - ForeignKey, которое содержит ссылку на таблицу ProductTypes с типами продуктов, например, phone, laptop...

Можно ли при POST запросе сделать так, чтобы в body указывался именно тип - строкой, а не ProductId, то есть вот так:

POST /products

{
    ...
    "product_type" = "laptop"
    ...
}

У меня пока вариант только перебирать все записи и пытаться найти ту, у которой текстовое представление совпадает с переданным, и заносить уже её product_id, но это очевидно супер медленно будет работать, возможно есть какие-то более простые варианты?

Использую фреймворк Django Rest Framework

Ответы

▲ 0

Нашел такое решение, при создании объекта использовать примерно следующую конструкцию:

product_type=ProductTypes.objects.get(name=request.data['product_type'])