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
도움이 되었기를 바랍니다.