Python 名称错误位于/accounts/upload_save/global name';联系方式';没有定义

Python 名称错误位于/accounts/upload_save/global name';联系方式';没有定义,python,django,Python,Django,我在/accounts/upload\u save处收到一个错误,name错误/ 未定义全局名称“ContactForm”。 我正在制作照片上传系统。 现在views.py就像 def upload(request, p_id): form = UserImageForm(request.POST or None) d = { 'p_id': p_id, 'form':form, } return render(request, '

我在/accounts/upload\u save处收到一个错误,name错误/ 未定义全局名称“ContactForm”。 我正在制作照片上传系统。 现在views.py就像

def upload(request, p_id):
    form = UserImageForm(request.POST or None)
    d = {
        'p_id': p_id,
        'form':form,
    }
    return render(request, 'registration/accounts/photo.html', d)

@csrf_exempt
def upload_save(request):

    photo_id = request.POST.get("p_id", "")

    if (photo_id):
        photo_obj = Post.objects.get(id=photo_id)
    else:
        photo_obj = Post()

    files = request.FILES.getlist("files[]")

    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            return HttpResponseRedirect('registration/accounts/photo.html')
    else:

        photo_obj.image = files[0]
        photo_obj.image2 = files[1]
        photo_obj.image3 = files[2]

        photo_obj.save()

        photos = Post.objects.all()
        context = {
            'photos': photos,
        }
        return render(request, 'registration/accounts/photo.html', context)
追溯说

Traceback:

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
  39.             response = get_response(request)

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
  58.         return view_func(*args, **kwargs)

File "/Users/xxx/Downloads/KenshinServer/accounts/views.py" in upload_save
  120.         form = ContactForm(request.POST)

Exception Type: NameError at /accounts/upload_save/
Exception Value: global name 'ContactForm' is not defined]

以前,我在files=request.files.getlist(“files[])中遇到索引超出范围的错误,我可以理解为什么会发生此错误,是由空文件引起的。因此,我尝试使用ContactForm并通过查看django文档中的示例代码来编写代码。但是,我遇到了这个错误,我无法理解为什么会发生这个错误。我想在文件为空时加载photo.html和upload方法。我如何解决这个问题?

如果我是对的,您正在尝试使用一些教程作为系统的模板。像这样


您应该在forms.py中输入并导入它以使用其form\u valid()方法。

事实上,该代码中没有定义它。你到底是在哪里定义的?@DanielRoseman我没有定义它。我应该如何定义它?在views.py中可以吗?你能写下你的意图吗?我真的不明白你在这里想做什么。你如何使用你没有定义的东西?