我正在尝试获取将要上传的图像的乱序名称并将其发送到 View 。在 View 中,我知道如何获取图像的真实名称,但如何从模型中获取乱序名称?
如果有人知道,我会朝这个方向尝试,希望您能告诉我,我是否朝正确的方向前进:
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])
模型.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
最佳答案
如果这是您要求的原因,图像处理应该在模型中完成。 同样在 fillen 函数中,您可以找到图像的名称。
将此添加到 model.py
# 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)
def filen(self):
path = self.image.path
print('image path',path)
tip = self.captcha_type
text = **here is your function that returns result of image process**
return text
result = filen
关于python - 如何从模型中获取加扰的图像文件名以查看django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45392873/