保存到Django imagefield

2024-04-19 00:34:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试着

1)拍一张上传的图片,用枕头换成黑白的

2)在视图中,将原始文件保存到名为“file”的FileField

3)在视图中,将黑白版本保存到名为“缩略图”的ImageField

1和2的效果很好,但我似乎搞不懂3。在

如有任何反馈,我们将不胜感激。在

查看

def archive_media_upload(request):

    if request.method == 'POST':
        form = UploadForm(request.POST, request.FILES)
        if form.is_valid():
            m = form.save(commit=False)

            m.user = request.user
            m.type = 1

                        # create black and white
            image = Image.open(m.file)
            black_and_white = image.convert("L")

                        #HOW DO I SAVE/ASSIGN BW IMAGE TO the "thumbnail_225" ImageField?

            m.save()

            return HttpResponseRedirect(reverse('archive_media_archive'))

    else:
        form = UploadForm(initial={'user': request.user })

    return render(request, 'archive_app/archive_media_upload.html', {'archive':True, 'show_upgrade_link': show_upgrade_link,'form': form})

型号

^{pr2}$

Tags: andform视图ifrequestsavepostmedia
1条回答
网友
1楼 · 发布于 2024-04-19 00:34:05

为了简短起见,您需要的是(我认为)是clean方法。您应该在您的表单中定义它:

类上载窗体(形式。形式)公司名称:

thumbnail_225  = forms.ImageField()

...

def clean_thumbnail_225 (self):
    thumbnail_225 = self.cleaned_data["thumbnail_225"]
    image = Image.open()
    black_and_white = image.convert("thumbnail_225")
    ...
    # return the clean data...

注:以上代码只是一个通用方案。它不会真正起作用,并且不包含所有正确的逻辑和语法。这只是为了演示。完整的提示可以在DJANGO's form and field validation documentation.中找到

相关问题 更多 >