专注Java领域技术
我们一直在努力

Django图片管理的表单类详解

原文始发于:Django图片管理的表单类详解

一 编辑mysite/image/forms.py文件

from django import forms from django.core.files.base import ContentFile from slugify import slugify from urllib import request  from .models import Image  class ImageForm(forms.ModelForm):     class Meta:         model = Image         fields = ('title', 'url', 'description')     # 主要是处理某个字段,函数的命名规定是clean_<fieldname>,其中fieldname就是     # 数据模型类中字段名称     def clean_url(self):         # 获取url字段的值         url = self.cleaned_data['url']         # 图像的扩展类型         valid_extensions = ['jpg', 'jpeg', 'png']         # 过滤得到扩展类型         extension = url.rsplit('.', 1)[1].lower()         if extension not in valid_extensions:             raise forms.ValidationError("不是图像.")         # 返回url的地址         return url      def save(self, force_insert=False, force_update=False, commit=True):         # 将表单的数据保存到image对象         image = super(ImageForm, self).save(commit=False)         # 获取图像的url地址         image_url = self.cleaned_data['url']         # 要保存的图像名称         image_name = '{0}.{1}'.format(slugify(image.title), image_url.rsplit('.', 1)[1].lower())         # 返回要保存图像的数据         response = request.urlopen(image_url)         # 返回的结果保存到本地,并按照约定名称给图片命名         image.image.save(image_name, ContentFile(response.read()), save=False)         if commit:             image.save()          return image

 

赞(0) 打赏
未经允许不得转载:Java小咖秀 » Django图片管理的表单类详解
免责声明

抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

专注Java技术 100年

联系我们联系我们

你默默的关注就是最好的打赏~

支付宝扫一扫打赏

微信扫一扫打赏