如何将下拉菜单值下载到django中的views.py?

时间:2017-02-13 05:47:17

标签: django django-views

我正在使用下拉菜单。我想在views.py上选择选项但是因为我将id作为值传递,并且当使用request.POST.get("operator")来获取所选项目的名称时,它会被命名为' s显示id而不是name 请在模板上检查以下代码,当我取值=运算符的名称时,它会给我操作员名称,但我也想要传递给另一个函数。 我应该把它们分开并分开,请提出解决方案

  <select  class="form-control" id="sel1" name="oprator"  data-live-search="true" onchange="getOprInfo(this.value)" >
     <option value="  ">Select Operator</option>
          {%for operator in operators%}
                <option value="{{operator.id}}">{{operator}}</option>
           {%endfor%}
   </select>

models.py上的代码

class Recharge_Operators(models.Model):
recharge_type = (
    ('Prepaid', 'Prepaid'),
    ('PostPaid', 'PostPaid'),
)
bill_gen = (
    ('Y', 'Yes'),
    ('N', 'No'),
)
operators_name = models.CharField(max_length=100)
type = models.CharField(max_length=15, choices=recharge_type)
service_id = models.ForeignKey(Service,related_name='op_service_id')
verification_url = models.TextField()
payment_url = models.TextField()
status_url = models.TextField()
bill_generate = models.CharField(max_length=1, choices=bill_gen)
min_value = models.CharField(max_length=20)
max_value = models.CharField(max_length=20)
interval = models.CharField(max_length=10)
comment = models.TextField(null=True,blank=True)
is_active = models.BooleanField()

def __str__(self):  # __unicode__ for Python 2
    return self.operators_name

1 个答案:

答案 0 :(得分:0)

我不确定这是否是您想要的,但似乎您希望运营商名称作为选项值,那么您应该在模板中使用名称而不是ID,如下所示:

<option value="{{operator.operators_name}}">{{operator}}</option>

因为你已经定义了:

def __str__(self):  # __unicode__ for Python 2
    return self.operators_name

如此简单地打印模型对象也会打印操作员名称,因此您也可以这样做:

 <option value="{{operator}}">{{operator}}</option>

或者默认情况下,如果您不提供值属性,则HTML选项会被赋予与标签相同的值,因此您也可以这样做:

 <option>{{operator}}</option>