I need to get a image from django imagefield and convert it to base64 file and upload that converted file in private s3 bucket. And while I getting the image from the s3 bucket I need to get that base64 file and send it to the forntend(reactjs).
Basically I need to convert the image to base64 file, I checked on the internet and Iam not sure where to use that code correctly. Can anyone please suggest me to do that or is any clear documentation available to use as step by step.
Here is my model, views and seriailizers
class Organisation(models.Model):
"""
Organisation model
"""
org_id = models.AutoField(unique=True, primary_key=True)
org_name = models.CharField(max_length=100)
org_code = models.CharField(max_length=20)
org_mail_id = models.EmailField(max_length=100)
org_phone_number = models.CharField(max_length=20)
org_address = models.JSONField(max_length=500, null=True)
product = models.ManyToManyField(Product, related_name='products')
org_logo = models.ImageField(upload_to=upload_org_logo, null=True, blank=True,)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def remove_on_image_update(self):
try:
# is the object in the database yet?
obj = Organisation.objects.get(org_id=self.org_id)
except Organisation.DoesNotExist:
# object is not in db, nothing to worry about
return
# is the save due to an update of the actual image file?
if obj.org_logo and self.org_logo and obj.org_logo != self.org_logo:
# delete the old image file from the storage in favor of the new file
obj.org_logo.delete()
class Orglist(APIView):
renderer_classes = (CustomRenderer,)
parser_classes = [parsers.MultiPartParser, parsers.FormParser]
"""
List all snippets, or create a new snippet.
"""
def get(self, request, format=None):
orgs = models.Organisation.objects.all()
serializer = serializers.Organisation_Serializers(orgs, many=True)
return Response(serializer.data)
def post(self, request, format=None):
serializer = serializers.Organisationpost_Serializers(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class OrgDetail(APIView):
renderer_classes = (CustomRenderer,)
parser_classes = [parsers.MultiPartParser, parsers.FormParser]
def get_object(self, pk):
try:
return models.Organisation.objects.get(pk=pk)
except models.Organisation.DoesNotExist:
raise Http404
def get(self, request, pk, format=None):
org = self.get_object(pk)
serializer = serializers.Organisation_Serializers(org)
return Response(serializer.data)
def put(self, request, pk, format=None):
org = self.get_object(pk)
serializer = serializers.Organisationpost_Serializers(org, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def delete(self, request, pk, format=None):
org = self.get_object(pk)
org.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
class Organisation_Serializers(serializers.ModelSerializer):
product = Product_Serializers(read_only=True,many=True)
class Meta:
model = Organisation
fields = ('org_id', 'org_name','org_address', 'org_phone_number', 'org_mail_id','org_logo','org_code','product',)
class Organisationpost_Serializers(serializers.ModelSerializer):
class Meta:
model = Organisation
fields = ('org_id', 'org_name','org_address', 'org_phone_number', 'org_mail_id','org_logo','org_code','product',)
I have configure the AWS credentials in the settings file. So kindly please suggest me a way to convert the image file and upload.