Django Rest - размещение данных и файлов
У меня есть две модели следующего вида:
class Tool(...):
name = models.CharField(unique=True, ...)
class Dataset(...):
file = models.FileField(...)
tool = models.ForeignKey(...)
Я хочу отправить запрос на почту так, чтобы я мог создать Dataset
экземпляр, загрузить файл и указать, к какому Tool
относится данный экземпляр. Кроме того, было бы идеально, если бы я мог использовать Tool
имя (которое является уникальным) при отправке post-запроса.
До сих пор я могу успешно загрузить файл, если удалю инструмент из DatasetSerializer. Но когда я добавляю инструмент в DatasetSerializer, я получаю ошибку 400 Bad Request
без каких-либо подробностей в консоли.
Вот мои сериализаторы и файлы представления:
serializers.py
class ToolSerializer(serializers.ModelSerializer):
...
class DatasetSerializer(serializers.ModelSerializer):
tool = ToolSerializer()
class Meta:
model = models.Dataset
fields = ['tool', 'file', ...]
views.py
from rest_framework.parsers import MultiPartParser
class DatasetViewSet(viewsets.BaseModelViewSet):
parser_classes = [MultiPartParser]
...
А вот запрос, который я пытаюсь выполнить:
# I am using the tool id here, but would prefer to use the name
requests.post(
...
data = {
'tool' : 1
},
files = {
'file' : open('file/path','rb')
}
)