[python] 장고 프레임 워크의 양식 필드에서 값을 얻는 방법은 무엇입니까?

Django 프레임 워크의 양식 필드에서 값을 어떻게 얻습니까? 템플릿이 아닌 뷰에서이 작업을 수행하고 싶습니다.



답변

보기에서 양식을 사용하면 거의 설명됩니다.

보기에서 양식을 처리하기위한 표준 패턴은 다음과 같습니다.

def contact(request):
    if request.method == 'POST': # If the form has been submitted...
        form = ContactForm(request.POST) # A form bound to the POST data
        if form.is_valid(): # All validation rules pass
            # Process the data in form.cleaned_data
            # ...

            print form.cleaned_data['my_form_field_name']

            return HttpResponseRedirect('/thanks/') # Redirect after POST
    else:
        form = ContactForm() # An unbound form

    return render_to_response('contact.html', {
        'form': form,
    })


답변

선택해라:

def my_view(request):

    if request.method == 'POST':
        print request.POST.get('my_field')

        form = MyForm(request.POST)

        print form['my_field'].value()
        print form.data['my_field']

        if form.is_valid():

            print form.cleaned_data['my_field']
            print form.instance.my_field

            form.save()
            print form.instance.id  # now this one can access id/pk

참고 : 필드는 사용 가능한 즉시 액세스됩니다.


답변

데이터의 유효성을 검사 한 후에이 작업을 수행 할 수 있습니다.

if myform.is_valid():
  data = myform.cleaned_data
  field = data['field']

또한 django 문서를 읽으십시오. 그들은 완벽하다.


답변

게시 요청을 보내는 양식에서 데이터를 검색하려면 다음과 같이 할 수 있습니다.

def login_view(request):
    if(request.POST):
        login_data = request.POST.dict()
        username = login_data.get("username")
        password = login_data.get("password")
        user_type = login_data.get("user_type")
        print(user_type, username, password)
        return HttpResponse("This is a post request")
    else:
        return render(request, "base.html")


답변

나는 django 1.7+와 python 2.7+를 사용하는데, 위의 솔루션은 작동하지 않습니다. 그리고 양식의 입력 값은 아래와 같이 POST를 사용할 수 있습니다 (위의 동일한 양식 사용).

if form.is_valid():
  data = request.POST.get('my_form_field_name')
  print data

도움이 되었기를 바랍니다.


답변