Как получить значение из поля формы в Django framework?
Как получить значения из полей формы в рамках django? Я хочу сделать это в представлениях, а не в шаблонах...
5 ответов:
использование формы в представлении в значительной степени объясняет это.
стандартный шаблон для обработки формы в виде выглядит так:
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. Они идеальны.
Я использую django 1.7+ и python 2.7+, решение выше дозы не работает. И входное значение в форме можно получить использовать сообщение, как показано ниже (используйте ту же форму выше):
if form.is_valid(): data = request.POST.get('my_form_field_name') print data
надеюсь, что это помогает.
чтобы получить данные из формы, которая отправляет запрос post, вы можете сделать это так
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")