我正在使用下拉菜单。我想在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
答案 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>