Django Rest Framework Отправка изображения по электронной почте

Здравствуйте, я столкнулся с проблемой отправки электронной почты в django rest API. Идея заключается в том, что пользователь отправляет электронную почту и загружает изображение из части сериализатора, и я хочу отправить то же самое изображение на электронную почту пользователя. Но я не получаю изображение по электронной почте.

вот код, над которым я работал.

models.py
class Mail(BaseModel):
    full_name = models.CharField(max_length=100)
    image = models.ImageField(upload_to=mail_image_to)
    email = models.EmailField()

ниже представлен мой сериализатор

class MailSerializer(serializers.ModelSerializer):
    class Meta:
        model = Mail
        fields = '__all__'


class AddMailSerializer(MailSerializer):
    class Meta(MailSerializer.Meta):
        fields = (
            'full_name',
            'image',
            'email',
        )

views.py

class AddMailView(generics.CreateAPIView):
    """
    Use this endpoint to add mail
    """
    serializer_class = serializers.AddMailSerializer

    def perform_create(self, serializer):
        return AddMailUseCase(serializer=serializer).execute()

Обычно я пишу остальной код в usecase.py

class AddMailUseCase:
    def __init__(self, serializer):
        self.serializer = serializer
        self.data = serializer.validated_data

    def execute(self):
        self._factory()

    def _factory(self):
        self._mail = Mail(**self.data)
        self._mail.save()
        SendEmail(
            context={
                "fullname": self.data['full_name'],
                'image': self.data['image']
            }
        ).send(to=[self.data['email']])

Я использую django-templated-mail 1.1.1 для отправки электронной почты, вот мой остальной код.

from templated_mail.mail import BaseEmailMessage


class SendEmail(BaseEmailMessage):
    template_name = 'email.html'

и, наконец, мой email.html

{% load i18n %}

{% block subject %}
{% blocktrans %}Email Successfully Sent {% endblocktrans %}
{% endblock subject %}

{% block text_body %}
{% blocktrans %}You're receiving this email because you recently registered  to our website.{% endblocktrans %}

{% trans "Your submitted details are as follow" %}

{% endblock text_body %}

{% block html_body %}
{% blocktrans %}
<p>hello {{ fullname }}</p>{% endblocktrans %}
{% blocktrans %}
<img src="{{ image }}" alt="email-image">

<p>{% trans "Thanks for using our site!" %}</p>

{% endblock html_body %}

есть ли помощь в решении этой проблемы? письмо, которое я получил, выглядит следующим образом: изображение не загружается enter image description here

вместо использования

<img src="{{ image }}" alt="email-image">

использовать

<img src="{{ image.url }}" alt="email-image">

и в вашем URL.py добавьте

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = patterns('',
    # ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Вернуться на верх