2
アップロードされるイメージのスクランブルされた名前を取得してビューに送信しようとしています。ビューではイメージの本名を取得する方法を知っていますが、モデルからスクランブルされた名前を取得するにはどうすればよいですか?モデルからビューにスクランブルされたイメージファイル名を取得する方法django
私は誰かが私はあなたが私に言うことを願って知っていれば、私は正しい方向に行くのですかこの方向で試してみました:
opts = UploadImage._meta
print ([f.name for f in opts.fields])
print ([(field.name, getattr(UploadImage,field.name)) for field in UploadImage._meta.fields])
print (UploadImage._meta.get_field('image'))
print([f.name for f in opts.many_to_many])
models.py
from django.db import models
import uuid
def scramble_uploaded_filename(instance, filename):
extension = filename.split(".")[-1]
return "{}.{}".format(uuid.uuid4(), extension)
def filename(instance, filename):
return filename
# Create your models here.
class UploadImage(models.Model):
# print (scramble_uploaded_filename)
image = models.ImageField("Uploaded image",upload_to=scramble_uploaded_filename)
img_type = models.IntegerField("Image type")
created = models.DateTimeField(auto_now_add=True)
user = models.CharField(default='1',max_length= 100,editable=False)
views.py
import sys,os
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
from rest_framework import viewsets
from api.models import UploadImage
from api.serializers import UploadedImageSerializer
from rest_framework import authentication, permissions
from rest_framework.parsers import MultiPartParser,FormParser
import MySQLdb
class FileUploadViewSet(viewsets.ModelViewSet):
#create queryset view
permission_classes = (permissions.IsAuthenticated,)
queryset = UploadImage.objects.filter(id=1,user='auth.User')
serializer_class = UploadedImageSerializer
parser_classes = (MultiPartParser, FormParser,)
#after post action get this
def perform_create(self, serializer):
#grab request
image_name = self.request.data['image']
username = self.request.user
#grab scrambled filename