python - 如何从模型中获取加扰的图像文件名以查看django

标签 python django

我正在尝试获取将要上传的图像的乱序名称并将其发送到 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/

相关文章:

Python http.client json 请求和响应。如何?

当用户调整窗口大小时,Python tkinter 小部件的大小调整不均匀

python - Django 开发服务器似乎使用旧版本的 python 源文件

django - 如何在 Django 中指定 login_required 重定向 url?

python - Tornado模板系统中的block.super

python - PyQt 窗口运行 x 秒

python - 创建随机值并将其传递给具有硬边界的 Pandas 数据帧

python - 如何访问嵌套列表中的元组元素

django - Secret Key 环境变量在 Ubuntu 上不起作用。 Django、Postgres、Gunicorn、Nginx、Virtualenv

python - 带有 apache 和 wsgi 的 Django 抛出 ImportError