我应该如何将django表单用于经常出现的<select>值?

时间:2016-08-09 19:24:31

标签: html django

我正在编写一个允许用户与信息数据库进行交互的应用程序(搜索,保存条目等)。 在应用程序的搜索部分,我有多个字段,我们希望允许用户指定&lt; &lt; = =&gt; =&gt;对于特定领域。我有一个表单,我用作表单的模板 我的模型(简化): class Item(models.Model):     id = models.IntegerField(primary_key = True)     model_name = models.CharField(max_length = 36,blank = True,null = True)     SKU = models.CharField(max_length = 256,blank = True,null = True)     price = models.DecimalField(max_digits = 15,decimal_places = 2,blank = True,null = True) 我的表格: class ItemForm(forms.ModelForm):     类Meta:         model =项目         fields = ['id','model_name','SKU','price'] 现在,在我们的html中 - 我们希望表单的搜索参数允许用户指定小于,小于等等。所以我有以下html: &lt; form class =“form-inline has-feedback”id =“search_form”method =“post”action =“{%url'search'%}”enctype =“multipart / form-data”&gt;     {%csrf_token%}         &lt; div class =“row”&gt;             &LT;字段集&GT;                 &LT;图例&GT;搜索和LT; /图例&GT;                 {{item_form.non_field_errors}}                 &lt; div class =“form-group col-md-2”&gt;                     {{item_form.price.errors}}                     &lt; label for =“{{item_form.price.id_for_label}}”class =“control-label”&gt; price:&lt; / label&gt;                     &lt; select name =“price_operator”&gt;                         &lt; option value =“lt”&gt;&amp;#60;&lt; / option&gt;                         &lt; option value =“lte”&gt;&amp;#60;&amp;#61;&lt; / option&gt;                         &lt; option selected =“selected”value =“e”&gt;&amp;#61;&lt; / option&gt;                         &lt; option value =“gte”&gt;&amp;#62;&amp;#61;&lt; / option&gt;                         &lt; option value =“gt”&gt;&amp;#62;&lt; / option&gt;                     &LT; /选择&GT;                     {%render_field item_form.price占位符=“价格”类+ =“表格控制输入组-md”%}                 &LT; / DIV&GT;                 ......等 我打算如何使用它只是抓住“price_operator”做类似的事情 oper = request.POST.get ['price_operator'] 然后做一些逻辑来获得正确的操作员。 我的问题是: A)将上述工作?到目前为止我还没有使用过选择标签,我不确定你是如何访问它们的。 B)还有比我在模型中显示的更多的字段(将其剪切为更简洁),并且将有许多实例需要添加相同的运算符下拉列表。在我的ItemForm中添加一个字段(或者更确切地说是多个字段,因为我想每个需要它的字段都需要它们自己的运算符字段)并让django进行验证会更有效吗? C)如果这更好,我将如何获得与目前相同的结果,除了使用表单方法? 感谢您的时间!

1 个答案:

答案 0 :(得分:1)

据我所知,这应该有效。如果您想保存代码,可以将下拉列表保存在另一个HTML文件中并使用include template tag。我不认为将它添加到ItemForm太重要了。