Bagaimana cara mendapatkan nilai dari bidang formulir dalam kerangka kerja django? Saya ingin melakukan ini dalam tampilan, bukan dalam template ...
Bagaimana cara mendapatkan nilai dari bidang formulir dalam kerangka kerja django? Saya ingin melakukan ini dalam tampilan, bukan dalam template ...
Jawaban:
Menggunakan formulir dalam tampilan cukup banyak menjelaskannya.
Pola standar untuk memproses formulir dalam tampilan terlihat seperti ini:
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,
})
Ambil pilihanmu:
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
Catatan: bidang ini diakses segera setelah tersedia.
form['my_field'].value()untuk mengakses nilai formulir pada permintaan POST. Beberapa hari: |
Anda dapat melakukan ini setelah Anda memvalidasi data Anda.
if myform.is_valid():
data = myform.cleaned_data
field = data['field']
Juga, baca dokumen django. Mereka sempurna.
Untuk mengambil data dari form yang mengirim permintaan posting Anda dapat melakukannya seperti ini
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")
Saya menggunakan django 1.7+ dan python 2.7+, solusi di atas tidak berfungsi. Dan nilai input dalam formulir bisa didapat menggunakan POST seperti di bawah ini (gunakan formulir yang sama di atas):
if form.is_valid():
data = request.POST.get('my_form_field_name')
print data
Semoga ini membantu.
class ContactForm(forms.Form): my_form_field_name = forms.CharField()