2017-09-24 5 views
0

/accounts/upload_save의 NameError/ 전역 이름 'ContactForm'이 정의되지 않았습니다. 사진 업로드 시스템을 만들고 있습니다./accounts/upload_save/global name의 NameError가 정의되지 않았습니다. 'ContactForm'이 정의되지 않았습니다.

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] 

전에 말한다처럼 지금 views.py, 난 파일의 범위 에러 중 인덱스를 가지고 = request.FILES.getlist ("파일을 []"), I 왜이 오류가 빈 파일이 발생하는지 이해할 수 있습니다. 그래서 ContactForm을 사용하려고 시도하고 장고 문서에서 샘플 코드를 보면서 코드를 작성했습니다. 그러나이 오류가있어서이 오류가 발생하는 이유를 이해할 수 없습니다. 사진을로드하고 싶습니다. html & 파일이 비어있을 때 업로드 방법. 어떻게 해결할 수 있습니까?

+0

실제로이 코드에는 정의되어 있지 않습니다. 실제로 그것을 어디에서 정의 했습니까? –

+0

@DanielRoseman 정의하지 않았습니다. 어떻게 정의해야합니까? views.py에서 괜찮습니까? 대답으로 의도 한 내용을 쓸 수 있습니까? – user8634222

+0

나는 당신이 여기에서하려고하는 것을 정말로 이해할 수 없다. 정의하지 않은 것을 어떻게 사용할 수 있습니까? –

답변

0

맞다면, 시스템 튜토리얼을 템플릿으로 사용하려고합니다. 이처럼 official one.

forms.py에서 define a Form class을 가져 와서 form_valid() 메소드를 사용하도록 가져와야합니다.

관련 문제