ValueError: Операция ввода/вывода над закрытым файлом в Django

Мне нужна помощь в решении этой проблемы.

Метод "read" на объекте doc показывает эту ошибку: ValueError: I/O operation on closed file.

Пожалуйста, как это решить

def send_comment_mail_notification(request, space, target_email):
    message = request.POST.get('description', '')
    subject = request.POST.get('subject', '')
    from_mail = space.email
    to = target_email
    msg = EmailMessage(subject, message, from_mail, [to],)
    doc = request.FILES['document']
    print(doc.read())
    msg.attach(doc.name, doc.read(), doc.content_type)
    msg.content_subtype = "html"
    msg.send()
class CommentViewSet(BaseViewSet):
    permission_classes = (BelongToSpace, )
    serializer_class = serializers.CommentSerializer
    parser_classes = (MultiPartParser, FormParser, FileUploadParser)
    queryset = models.Comment.objects.all()

    def callback(self, **kwargs):
        return send_comment_mail_notification(self.request, self.space, "aa@gmail.com")

Я нашел способ обойти это, но не знаю, лучшее ли это решение. Благодаря комментарию @Willem

Я исключил поле "document" в файле serializers.py под CommentSerilaizer, после чего стало возможным вызвать метод "read" на объекте "doc".

class CommentSerializer(serializers.ModelSerializer):
comment_cat_detail = serializers.SerializerMethodField()
creator_detail = serializers.SerializerMethodField()

class Meta:
    model = models.Comment
    # fields = "__all__"
    exclude = ('document', )
Вернуться на верх