2013-06-18 59 views
-3

我想从模板通过一个下拉变量的函数,当我点击提交按钮如何从模板传递参数给视图的Django

#models.py :- 

    class donnee(models.Model): 
     name = models.CharField(_('name'), max_length= 150) 

     def __unicode__(self): 
      return self.name 

     class Meta: 
      verbose_name = _('donnee') 
      verbose_name_plural = _('donnees filtrage') 
      ordering = ['name'] 


    class Property(models.Model): 
     name = models.CharField(_('name'), max_length=50) 
     description = models.TextField(_('description'), blank=True) 

     def __unicode__(self): 
      return self.name 

     class Meta: 
      verbose_name = _('property') 
      verbose_name_plural = _('properties') 
      ordering = ['name'] 


    class Physic2(models.Model): 
     name = models.ForeignKey(Property, verbose_name=_('name'), null=True, blank=True) 
     lapropriete = models.ForeignKey(donnee, verbose_name=_('lapropriete'), blank=True) 
     #lapropriete = models.CharField(_('property'), max_length=100) 
     description = models.TextField(_('description'), blank=True) 

     def __unicode__(self): 
      return self.lapropriete 

     class Meta: 
      verbose_name = _('physic2') 
      verbose_name_plural = _('physics2') 
      ordering = ['name'] 

    #forms.py:- 

    class Physic2Form(forms.ModelForm): 
     class Meta: 
      model = Physic2 

    #views.py:- 

    def get_materials_one(request, category_slug=None): 
     if category_slug is None: 
      lafamille= 'general' 
      propriete= Physic2Form() 
      return render_to_response('material/critere1.html', 
             {'unefamille': lafamille, 
             'propriete': propriete}, 
             context_instance=RequestContext(request)) 

    #template:- 

    <form id= "testjson" action="{% url chercher_filtre1 %}" method= "get" onsubmit = ""> 

    {{ propriete.lapropriete }} 

    <td><input type="submit" style="background-color:#D7D8D4;" value="Search" id= "chercher"/></td> 
    </div> 

    </form> 

    #function:- 

    valT1 = request.GET['lapropriete'] 

this don't work 

当我点击一个字段的下拉列表中

valT1 = 1或2 ...它字段的只是ID

我有字段

维氏硬度(GPa)的 剪切模量(GPa) 个杨氏模量(GPA)

把什么request.GET中[??]

+0

valT1 = request.GET ['lapropriete']'位于何处?我指的是哪个文件。 – ElmoVanKielmo

+0

为什么在这个世界上,你正尝试着去请求一些东西。如果@sandeep答案没有用,我们不知道你想要达到什么目的。 – ElmoVanKielmo

+0

你在django 1.3中,对不对? – lalo

回答

1

你可以这样写和尝试。

if request.method == 'GET': 
    form = Physic2Form(request, data=request.GET) 
    if form.is_valid(): 
     data = form.cleaned_data 
     valT1 = data['lapropriete'] 
+0

正确。我很困惑他的代码中的“功能”部分属于哪里。 – ElmoVanKielmo

0

我的功能

高清search_filter1(请求): 尝试:

val_min1 = float(request.GET['Vmin1']) 
    val_max1 = float(request.GET['Vmax1']) 
    T_min1 = float(request.GET['Tmin1']) 
    T_max1 = float(request.GET['Tmax1']) 
    if request.method == 'GET': 
     form = Physic2Form(request.GET) 
     if form.is_valid(): 
      valT1 = form['lapropriete'] 
    print 'val_min1:',val_min1 
    print 'val_max1:',val_max1 
    print 'Tmin1:', T_min1 
    print 'Tmax1:', T_max1 
    print 'valT1:',valT1 

如果我选择属性 '剪切模量(GPA)' 当我点击提交按钮,0​​我得到这个:

val_min1:44.0 val_max1:99.0 Tmin1:44.0 Tmax1:99.0

valT1: <select name="lapropriete" id="id_lapropriete"> 
<option value="">---------</option> 
<option value="2">Elasticity Modulus (GPa)</option> 
<option value="4" selected="selected">Shear Modulus (GPa)</option> 
<option value="1">Vickers Hardness (GPa)</option> 
<option value="3">Young Modulus (GPa)</option> 
</select> 

为什么这样?

相关问题