2016-10-17 2 views
1

다음은 목표입니다. 사용자가 양식을 제출하면 하나의보기를 사용하여 제출 된 데이터를 데이터베이스로 전송 한 다음 양식으로 다시 리디렉션하지만 데이터는 미리 채 웁니다. 이것은 인데 대부분입니다.하지만 구현 방법 중 일부는 문자열 주위에 따옴표를 추가하는 것입니다. 지금은 아주 단순한 형식 인 btw 만 사용하고 있습니다. 나는 Billy를 입력하고 사전 팝은 다음과 같습니다 "Billy", 내가 다시 제출을 클릭하면, 그것은으로 돌아옵니다 :. 지금까지 내가 테스트 한대로 등 (다음 "\"Billy\"", "\"\\\"Billy\\\"\"", 그리고, 어쨌든django는 후속 제출시 따옴표를 추가합니다.

관련 전망은 다음과 같습니다 :

class usersForm(forms.Form): 
    user_name = forms.CharField(label='New User\'s name', max_length=100) 

및 템플릿은 다음과 같습니다 :

def editUsers(request): 
    if request.method == 'POST': 
     # create a form instance and populate it with data from the request: 
     form = usersForm(request.POST) 
     # check whether it's valid: 
     # process the data in form.cleaned_data as required 
     # redirect to a new URL: 
     name = json.dumps(form.data['user_name']) 
     request.session['editUserName'] = name 

     # call out to limboLogic.py to update values 

     test = name 
     return redirect('../users') 
    # if a GET (or any other method) we'll create a blank form 
    else: 
     return redirect('../users') 

from .forms import * 

def users(request): 
    form = None 

    if 'editUserName' not in request.session: 
     # create a blank form 
     form = usersForm() 
    else: 
     # form = equipmentForm(initial='jim') - used to make sure I was branching the if/else correctly 
     form = usersForm(initial={'user_name':request.session['editUserName']}, auto_id=False) #limboLogic.GetUserInfo(name)) 
    return render(request, 'limboHtml/UserManagement.html', {'form': form}) 

형태는 단순히

{% extends "base.html" %} 

{% block content %} 
<div class="row"> 
    <p>This is the user management page</p><br> 
    <form action="/edit/users.html" method="post"> 
     {% csrf_token %} 
     {{ form }} 
     <input type="submit" value="OK"> 
    </form> 
    <br><p class="bold">This is below the form</p> 
    </div> 
{% endblock %} 
,536,

생각?

답변

0

나는 여기에 어떤 부분이 있는지 말할 수는 없지만 문제는 json 클래스를 사용하고 있다는 사실입니다. this site을 가이드로 사용하여 문제를 해결했습니다. 주의 주요 측면은 경우 초 안에 있음 :

name = form.cleaned_data['user_name']가 잘 작동

name = json.dumps(form.data['user_name'])

전체 기능은 이제 의미하지 않는 :

def editUsers(request): 
    if request.method == 'POST': 
     # create a form instance and populate it with data from the request: 
     form = usersForm(request.POST) 
     # check whether it's valid: 
     # process the data in form.cleaned_data as required 
     # redirect to a new URL: 
     if form.is_valid(): 
      name = form.cleaned_data['user_name'] 
      # name = json.dumps(form.data['user_name']) 
      request.session['editUserName'] = name 

      # call out to limboLogic.py to update values 

      test = name 
      return redirect('../users') 
    # if a GET (or any other method) we'll create a blank form 
    return redirect('../users') 
관련 문제