У меня есть это представление:
class CommitmentList(generics.ListCreateAPIView):
permission_classes = (permissions.IsAuthenticated,)
serializer_class = CommitmentSerializer
....
и этот сериализатор:
class CommitmentSerializer(serializers.ModelSerializer):
commitment = serializers.ListField(child=serializers.DictField(),
write_only=True)
class Meta:
model = Commitment
fields = ....
моя модель:
class Commitment(models.Model):
signature = models.ImageField(upload_to='signatures/')
dealer = models.ForeignKey(User,
on_delete=models.CASCADE,
related_name='dealer_commitment')
grower = models.ForeignKey(User,
on_delete=models.CASCADE,
related_name='grower_commitment')
is_original = models.BooleanField(default=True)
I
inЭто выглядит так:
{
"dealer": "123",
"grower": "321",
"signature": IMAGE HERE
"commitment": [
{
"brand": 3,
"is_original": true,
"commitment_unit": 300
}
]
}
В почтальоне я пытаюсь отправить данные вот так (для теста)
Нов почтальоне у меня есть ошибка:
{
"dealer": [
"This field is required."
],
"grower": [
"This field is required."
],
"commitment": [
"This field is required."
]
}
Затем я попытался добавить parser_classes = (MultiPartParser, )
на мой взгляд, и это выглядит так:
class CommitmentList(generics.ListCreateAPIView):
permission_classes = (permissions.IsAuthenticated,)
serializer_class = CommitmentSerializer
parser_classes = (MultiPartParser, )
Но теперь в почтальоне у меня естьошибка: A server error occurred. Please contact the administrator.
И в проекте Django есть ошибка:
AttributeError: 'NoneType' object has no attribute 'decode'
Как я могу отправлять такие данные?:
{
"dealer": "123",
"grower": "321",
"signature": IMAGE HERE
"commitment": [
{
"brand": 3,
"is_original": true,
"commitment_unit": 300
}
]
}