3

我正在尝试使用 django 并按照网站上的教程上传图像。在views.py我有:

def picture_upload(request):
    """
    form to upload an image together with a caption.
    saves it as a Picture in the database on POST.
    shows the last uploaded picture and let's you upload another.
    """
    picture = None
    if request.method != 'POST':
        form = PictureUploadForm()
    else:
        form = PictureUploadForm(request.POST, request.FILES)
        if form.is_valid():
            # an UploadedFile object
            uploadedImage = form.cleaned_data['image']
            caption = form.cleaned_data['caption']

            # limit to one database record and image file.
            picture, created = Picture.objects.get_or_create(picture_id=1)
            if not created and picture.get_image_filename():
                try:
                    os.remove( picture.get_image_filename() )
                except OSError:
                    pass

            # save the image to the filesystem and set picture.image
            picture.save_image_file(
                uploadedImage.filename, 
                uploadedImage.content
            )

            # set the other fields and save it to the database
            picture.caption = caption
            picture.save()

            # finally, create a new, empty form so the 
            # user can upload another picture.
            form = PictureUploadForm()

    return render_to_response(
        'example/picture_upload.html',
        Context(dict( form=form, last_picture=picture) ) )

错误说:

全局名称'上下文'未定义”在我的代码的最后一行。“views.py in picture_upload, line 111”。

我怎么解决这个问题?

4

1 回答 1

6

如果未定义,则未定义。您必须从 django.template 导入 Context。

在文件顶部,输入

from django.template import Context

你不能神奇地希望所有变量都被定义......PictureUploadForm如果你没有导入它或以其他方式定义它,你认为你可以使用它吗?

于 2012-08-21T23:47:34.233 回答