예제 #1
0
    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')
예제 #2
0
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})
예제 #3
0
 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()
예제 #4
0
    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
예제 #5
0
 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()  # 再保存一下,包括缩略图等
예제 #6
0
파일: models.py 프로젝트: nueldeli/flr_root
 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')
예제 #7
0
파일: models.py 프로젝트: nueldeli/flrweb
 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')
예제 #8
0
파일: models.py 프로젝트: nueldeli/flr_root
 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')
예제 #9
0
    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)
예제 #10
0
 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
예제 #11
0
 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
예제 #12
0
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")])
예제 #13
0
파일: models.py 프로젝트: hanzezhen/zxc
 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()
예제 #14
0
 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()  # 再保存一下,包括缩略图等
예제 #15
0
    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'))
예제 #16
0
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
예제 #17
0
 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() #再保存一下,包括缩略图等
예제 #18
0
    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
예제 #19
0
 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()
예제 #20
0
 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()
예제 #21
0
    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)
예제 #22
0
    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)
예제 #23
0
 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()
예제 #24
0
파일: models.py 프로젝트: Moxmi/Airblog
 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()
예제 #25
0
파일: models.py 프로젝트: GeorgeTYC/iTrash
 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()
예제 #26
0
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
예제 #27
0
    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)
예제 #28
0
    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" />')
예제 #29
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()  #再保存一下,包括缩略图等
예제 #30
0
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",
    }