def test_template_tag_imagefield(self): image = ImageFieldFile(instance=None, field=FileField(), name='cat.png') rendered = self.TEMPLATE.render(Context({'image': image, 'spec': ''})) self.assertEqual(rendered, '/cat.png.EcGFxfc.png')
def register(request): if request.method == "POST": form = RegistrationForm(request.POST) if form.is_valid(): new_user = form.save(commit=False) new_user.set_password(form.cleaned_data["password"]) new_user.save() if settings.AVATAR_SITE: Profile.objects.create(user = new_user, avatar = ImageFieldFile(instance=None, field=FileField(), name='user_avatars/default.png')) else: Profile.objects.create(user = new_user, field=FileField(), name='user_avatars/default.png') # from django.contrib.auth.models import User # from django.db.models.fields.files import ImageFieldFile, FileField # from accounts.forms import Profile # u = User.objects.get(username = "******") # p = Profile.objects.get(user = u) # p.avatar = ImageFieldFile(instance=None, field=FileField(), name='user_avatars/default.png') return render(request, "accounts/registration_complete.html", {"new_user": new_user}) else: form = RegistrationForm() return render(request, "accounts/register.html", {"user_form": form})
def save(self): base, ext = os.path.splitext(os.path.basename(self.image.path)) relate_thumb_path = os.path.join(UPLOAD_ROOT, base + '_thumb' + ext) thumb_pix = make_thumb(self.image) thumb_pix.save(os.path.join(MEDIA_ROOT, relate_thumb_path)) self.thumb = ImageFieldFile(self, self.thumb, relate_thumb_path) super(PhotoStream, self).save()
def __getattribute__(self, name): fallback = object.__getattribute__(self, 'fallback') attr = object.__getattribute__(self, name) opts = object.__getattribute__(self, '_meta') default_lang = object.__getattribute__(self, 'default_language_code') active_lang = get_language() if name not in opts.translatable_fields or default_lang == active_lang: return attr translated = object.__getattribute__(self, '_translated') if translated: if hasattr(translated, name): _field = self._meta.get_field(name) if isinstance(_field, ImageField): return ImageFieldFile( self, _field, getattr(translated, name, attr if fallback else '')) elif isinstance(_field, FileField): return FieldFile( self, _field, getattr(translated, name, attr if fallback else '')) else: return getattr(translated, name, attr if fallback else '') elif hasattr(translated, '__iter__') and (active_lang in translated or name in translated): try: return translated.get(active_lang).get(name, '') except Exception as e: print('exception happened in model getattribute', e) return attr
def save(self, *args, **kwargs): # 将上传的图片先保存 super().save() # 如果是默认图片不压缩 if self.avator_sor.name == 'avator/default.jpg': return # 如果文件不存在,不压缩 if not os.path.exists(os.path.join(MEDIA_ROOT, self.avator_sor.name)): return base, ext = os.path.splitext(self.avator_sor.name) # 从头像中生成缩略图 thumb_pixbuf = make_thumb(os.path.join(MEDIA_ROOT, self.avator_sor.name), size=THUMB_SIZE) if thumb_pixbuf: # 缩略图的保存文件全路径=> 保存文件 thumb_path = os.path.join( MEDIA_ROOT, base + f'.{THUMB_SIZE}x{THUMB_SIZE}' + ext) # 缩略图相对路径 => 数据库 relate_thumb_path = os.path.join( '/'.join(self.avator_sor.name.split('/')[:-1]), os.path.basename(thumb_path)) relate_thumb_path = base + f'.{THUMB_SIZE}x{THUMB_SIZE}' + ext # 保存缩略图 thumb_pixbuf.save(thumb_path) # 保存字段值 self.avator_sm = ImageFieldFile(self, self.avator_sm, relate_thumb_path) super().save() # 再保存一下,包括缩略图等
def get_programme_img(self): if self.programme_img and hasattr(self.programme_img, 'url'): return self.programme_img.url return ImageFieldFile( instance=None, field=FileField(), name='/media/programme_img/programme_img_default.png')
def get_seedling_img(self): if self.seedling_img and hasattr(self.seedling_img, 'url'): return self.seedling_img.url return ImageFieldFile( instance=None, field=FileField(), name='/media/seedling_img/seedling_default_img.png')
def get_cart_img(self): if self.cart_species_img and hasattr(self.cart_species_img, 'url'): return self.cart_species_img.url return ImageFieldFile( instance=None, field=FileField(), name='/media/cart_species_img/cart_img_default.png')
def test_custom_file_widget(self): """ ``ClearableFileInput`` respects its ``file_widget`` argument. """ widget = ClearableFileInput(file_widget=ImageWidget()) html = widget.render('fieldname', ImageFieldFile(None, ImageField(), 'tiny.png')) self.assertTrue('<img' in html)
def get_image_display(self): if self.type == 'video' and not hasattr(self.image, 'url'): if self._video_update_thumbnail(): return self.image else: return ImageFieldFile(instance=None, field=FileField(), name='processing.jpg') else: return self.image
def hydrate(self, bundle): try: bundle.obj.last_frame.file except ValueError: bundle.obj.last_frame = ImageFieldFile( bundle.obj, Question._meta.get_field_by_name('last_frame')[0], "") return bundle
class User: name = "John" group_set = FakeManager([1, 2, 3]) avatar = ImageFieldFile(None, Mock(), name=None) @property def tags(self): return FakeQS([Tag(1, "foo"), Tag(2, "bar")])
def save(self): super(equipment, self).save() # 将上传的图片先保存一下,否则报错 base, ext = os.path.splitext(os.path.basename(self.epic.path)) thumb_pixbuf = make_thumb(os.path.join(MEDIA_ROOT, self.epic.name)) relate_thumb_path = os.path.join(THUMB_ROOT, base + '.thumb' + ext) thumb_path = os.path.join(MEDIA_ROOT, relate_thumb_path) thumb_pixbuf.save(thumb_path) self.epic = ImageFieldFile(self, self.epic, relate_thumb_path) super(equipment, self).save()
def save(self): super(PicManage, self).save() # 将上传的图片先保存一下,否则报错 base, ext = os.path.splitext(os.path.basename(self.img.path)) thumb_pixbuf = make_thumb(os.path.join(MEDIA_ROOT, self.img.name)) relate_thumb_path = os.path.join(THUMB_ROOT, base + '_thumb' + ext) thumb_path = os.path.join(MEDIA_ROOT, relate_thumb_path) thumb_pixbuf.save(thumb_path) self.imgthumb = ImageFieldFile(self, self.imgthumb, relate_thumb_path) super(PicManage, self).save() # 再保存一下,包括缩略图等
def test_custom_template(self): """ ``ImageWidget`` respects a custom template. """ widget = ImageWidget(template='<div>%(image)s</div>' '<div>%(input)s</div>') html = widget.render('fieldname', ImageFieldFile(None, ImageField(), 'tiny.png')) self.assertTrue(html.startswith('<div><img'))
def makeThumb(pic): base, ext = os.path.splitext( os.path.basename('./FileDir/Thumb/' + pic.name)) thumb_pixbuf = make_thumb_img(os.path.join('./FileDir/Thumb', pic.name)) relate_thumb_path = os.path.join('/Thumb', base + '.thumb' + ext) thumb_path = os.path.join('./FileDir', relate_thumb_path) thumb_pixbuf.save(thumb_path) thumb = ImageFieldFile(relate_thumb_path) return thumb
def save(self): super(File, self).save() #将上传的图片先保存一下,否则报错 base, ext = os.path.splitext(os.path.basename(self.image.path)) thumb_pixbuf = make_thumb(os.path.join(MEDIA_ROOT, self.image.name)) relate_thumb_path = os.path.join(THUMB_ROOT, base + '.thumb' + ext).replace("\\","/") thumb_path = os.path.join(MEDIA_ROOT, relate_thumb_path).replace("\\","/") thumb_pixbuf.save(thumb_path) self.thumb = ImageFieldFile(self, self.thumb, relate_thumb_path) super(File, self).save() #再保存一下,包括缩略图等
def value_from_datadict(self, data, files, name): value = super(CustomClearableFileInput, self).value_from_datadict(data, files, name) # value is false if the clear image check box is set if value is False: userModelAvatarField = get_user_model().avatar.field value = self.__class__.defaultAvatar = ImageFieldFile(instance=None, field=userModelAvatarField, name=defaultAvatar) return value
def save(self): super(product, self).save() #将上传的图片先保存一下,否则报错 base, ext = os.path.splitext(os.path.basename(self.image.path)) thumb_pixbuf = make_thumb(os.path.join(MEDIA_ROOT, self.image.name)) relate_thumb_path = os.path.join(THUMB_ROOT, "small/" + base + '.thumb' + ext) thumb_path = os.path.join(MEDIA_ROOT, relate_thumb_path) thumb_pixbuf.save(thumb_path) self.thumb = ImageFieldFile(self, self.thumb, relate_thumb_path) super(product, self).save()
def save(self): # 重写图片保存方法 super(PollingItemImages, self).save() if self.image: img_name = self.image.name if self.is_avatar == True: thumb_avatar = MakeThumb('media/' + img_name, size=300) thumb_path = 'polling/item/img/' + str( self.id) + '_300*height.' + img_name.split('.')[-1] thumb_full_path = 'media/' + thumb_path thumb_avatar.save(thumb_full_path) self.thumb = ImageFieldFile(self, self.thumb, thumb_path) super(PollingItemImages, self).save() thumb_preview = MakeThumb('media/' + img_name) thumb_path = 'polling/item/img/' + str( self.id) + '_128*height.' + img_name.split('.')[-1] thumb_full_path = 'media/' + thumb_path thumb_preview.save(thumb_full_path) self.preview = ImageFieldFile(self, self.preview, thumb_path) super(PollingItemImages, self).save()
def test_custom_file_widget_via_subclass(self): """ Default ``file_widget`` class can also be customized by subclassing. """ class ClearableImageWidget(ClearableFileInput): default_file_widget_class = ImageWidget widget = ClearableImageWidget() html = widget.render('fieldname', ImageFieldFile(None, ImageField(), 'tiny.png')) self.assertTrue('<img' in html)
def test_render(self): """ ``ImageWidget`` renders the file input and the image thumb. """ widget = ImageWidget() html = widget.render('fieldname', ImageFieldFile(None, ImageField(), 'tiny.png')) # test only this much of the html, because the remainder will # vary depending on whether we have sorl-thumbnail self.assertTrue('<img' in html) self.assertTrue('/media/tiny' in html)
def save(self, *args, **kwargs): # 重写图片保存方法 super(ActivityImages, self).save() base, ext = os.path.splitext(self.img.name) thumb_preview = MakeThumb(self.img.path, 300) thumb_path = base + '_tiny' + ext #调用Image.save这个函数的时候需要使用绝对路径 thumb_preview.save( '/home/webapp/wechat/running_association_wx/media/' + thumb_path) self.tiny_img = ImageFieldFile(self, self.tiny_img, thumb_path) super(ActivityImages, self).save()
def save(self, *args, **kwargs): base, ext = os.path.splitext(os.path.basename(self.image.path)) super(Images, self).save() thumbBuf = make_thumb(os.path.join(MEDIA_ROOT, self.image.name)) if thumbBuf: relate_thumb_path = os.path.join('upload_images/thumb_images/', base + '.thumb' + ext) thumb_path = os.path.join(MEDIA_ROOT, relate_thumb_path) thumbBuf.save(thumb_path) self.thumb = ImageFieldFile(self, self.thumb, relate_thumb_path) super(Images, self).save()
def save(self): super(PicInfo, self).save() if self.audit==False and self.image: img_name = self.image.name.split('/')[-1] thumb_pixbuf = make_thumb_fixed(self.image.path) rel_thumb_path = 'thumb_trashimg/'+ img_name thumb_path=os.path.join(MEDIA_ROOT,"thumb_trashimg",img_name) with open(thumb_path,"wb") as f: thumb_pixbuf.save(f) self.thumb = ImageFieldFile(self, self.thumb, rel_thumb_path) super(PicInfo, self).save()
class User: name = "John Smith" group_set = FakeManager([1, 2, 3]) avatar = ImageFieldFile(None, Mock(), name=None) boss: Optional[Boss] = Boss() @property def tags(self): return FakeQS([Tag(1, "foo"), Tag(2, "bar")]) def get_boss_title(self): return self.boss and self.boss.title
def save(self, *args, **kwargs): if not self.profilepicture: im = Image.open(DEFAULT_PROFILE_IMAGE_PATH) full_path = PROJECT_ROOT + MEDIA_URL + 'profilepictures/' + self.user.username + '.png' print full_path + " :This is the fullpath\n" im.save(full_path, 'PNG') short_path = 'profilepictures/' + self.user.username + '.png' self.profilepicture = ImageFieldFile(instance=None, name=short_path, field=FileField()) super(UserProfile, self).save(*args, **kwargs)
def test_custom_template(self): """ ``ClearableFileInput`` respects its ``template`` argument. """ widget = ClearableFileInput(template='Clear: %(checkbox)s %(input)s') html = widget.render('fieldname', ImageFieldFile(None, ImageField(), 'tiny.png')) self.assertHTMLEqual( html, 'Clear: ' '<input type="checkbox" name="fieldname_1" /> ' '<input type="file" name="fieldname_0" />')
def save(self): super(Device, self).save() #将上传的图片先保存一下,否则报错 base, ext = os.path.splitext(os.path.basename(self.devimg.path)) if base != 'default': thumb_pixbuf = make_thumb( os.path.join(MEDIA_ROOT, self.devimg.name)) relate_thumb_path = os.path.join(THUMB_ROOT, base + '.thumb' + ext) thumb_path = os.path.join(MEDIA_ROOT, relate_thumb_path) thumb_pixbuf.save(thumb_path) thumb_path1 = 'thumb/' + base + '.thumb' + ext self.devthumb = ImageFieldFile(self, self.devthumb, thumb_path1) super(Device, self).save() #再保存一下,包括缩略图等
def test_schema_with_image(): user = User() field = Mock() field.storage.url = Mock(return_value="/smile.jpg") user.avatar = ImageFieldFile(None, field, name="smile.jpg") schema = UserSchema.from_orm(user) assert schema.dict() == { "name": "John", "groups": [1, 2, 3], "tags": [{"id": "1", "title": "foo"}, {"id": "2", "title": "bar"}], "avatar": "/smile.jpg", }