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', )