2011-11-03 6 views
0

내 게시물/요청을 처리하기 위해 Apache/PHP Server와 Django의 양식을 사용하고 있습니다. 필드를 설정하지 않아도 오류가 발생하지 않도록 설정하려면 어떻게해야합니까?Django 응용 프로그램에 게시

PHP 양식 :

<form action="http://www.mydomain.com:8003/login/" method="post"> 
<input type="text" name="email" id="email"><br> 
<input type="text" name="password" id="password"><br> 
<input type="checkbox" name="remember"><br> 
<input type="submit" value="send" id="send"> 
</form> 

장고 :

from django.http import HttpResponse, HttpResponseRedirect 
from django.shortcuts import render_to_response 
from django.views.decorators.csrf import csrf_exempt 

@csrf_exempt 
def index(request): 
    if request.method == 'POST': 
     post = request.POST 
     email = post['email'] 
     pass = post['password'] 
     remember = post['remember'] 
     if remember: 
      expire_v = 30 
     else: 
      expire_v = None 
     response = HttpResponse(email) 
     response.set_cookie('emailaddress', email, max_age=expire_v) 
     response.set_cookie('password', pass, max_age=expire_v) 
     return response 

이 오류가 발생보다 선택하지 기억한다면 문제입니다.

+0

오류가 무엇에서 매개 변수를 가져 오는 경우 기본값 사용을 시도? –

+0

알았어, 알아 냈어. 내가 장고 외부에서 비워 둘 수있는 필드를 전송할 때는'request.POST [ 'remember'] 대신''request.POST.get ('remember', None)''을 써야합니다. – Bobby

답변

5

엄청 많이이 코드와 오류를 모른 채 잘못이있다 : 당신이 요청

email = request.POST.get('email', False) 
password = request.POST.get('pass', False) # pass is a keyword in python 
remember = request.POST.get('remember', False) 
if email and password: 
    response = HttpResponse(email) 
    if remember: 
     response.set_cookie('emailaddress', email, max_age=30) 
     response.set_cookie('password', pass, max_age=30) 
    return response 
else: 
    # do something to indicate a problem 
관련 문제