2016-09-22 58 views
2

事實我是新來的Django,我想知道如何捕獲輸入類型的值=隱藏在Django視圖中,使用request.POST [ 'address'],這樣它可以在我的模型中輸入一個值,在這種情況下,我想填充我的字段方向,但不會收到數據庫中顯示的任何數據爲空。這是我的代碼至今:在Django中從一個HTML POST捕獲窗體模型捕獲

views.py

def formularioLleno(request): 
    form = InformationForm() 
    if request.method == 'POST': 
     form = InformationForm(request.POST or None) 
     if form.is_valid(): 
      form.ubicacion = request.POST['direccion'] 
      form.save() 
      #return redirect('formas.index') 
      return HttpResponseRedirect(reverse('index')) 
     else: 
      form = InformationForm() 
    data = { 
     'form': form, 
    } 
    return render_to_response('forma_form.html', data, context_instance=RequestContext(request)) 

forms.py

from django import forms 
from .models import forma 
class InformationForm(forms.ModelForm): 

    class Meta: 
     model = forma 
     fields = ('nombre', 'telefono') 

models.py

class forma(models.Model): 
    nombre = models.CharField(verbose_name='nombre', max_length=50, unique=False) 
    telefono = models.CharField(verbose_name='telefono', max_length=10, unique=False) 
    ubicacion = models.CharField(verbose_name='ubicacion', max_length=15, unique=False) 

forma_form.html

<div id="formularios"> 
{% block form_content %} 
    <form action="" method="POST"> 
     {% csrf_token %} 
     {{ form.as_p }} 
     <div id="ubicacion"></div> 
     <input type="hidden" id="direccion" name="direccion" value="hello"> 
     <button type="submit" onclick="alerta()">Contactar</button> 
    </form> 

{% endblock form_content %} 

+0

請修復代碼中的縮進錯誤。 – ozgur

+0

感謝它的準備 –

+0

您的表單類'InformationForm(...)'明確指出只有兩個字段應該顯示 –

回答

0

你看不到輸入的原因是,表單字段「direccion」是不是類InformationForm的成員。當您使用form = InformationForm(request.POST or None)從請求中加載數據時,direcion字段未被捕獲。

我會建議增加一個新成員InformationForm形式(direccion),以及小部件設置爲HiddenInput(閱讀更多關於小工具在這裏:https://docs.djangoproject.com/en/1.10/ref/forms/widgets/

該保持輸入隱藏窗體上,但會通過信息返回到視圖。然後,您可以從模板中刪除硬編碼的隱藏輸入HTML。

+0

您好邁克爾與這個問題是,我用Javascript修改該輸入的值,所以我想獲得該值,並將其放在位置屬性模型 –

+0

您仍然可以修改通過javascript隱藏輸入的值,因爲ID仍然可以訪問(ID將是表單類中字段的名稱)。 – Michael

+0

您也可以直接從request.POST訪問信息,而不是依靠Form構造函數爲您提供該信息。 https://docs.djangoproject.com/en/1.10/ref/request-response/#django.http.QueryDict – Michael