【问题标题】:ModelChoiceField. ID instead of the name模型选择字段。 ID而不是名字
【发布时间】:2012-10-02 11:06:18
【问题描述】:

send_option(视图中)变量中,我有nameSend。 我想要IDSend

怎么做?谢谢

表格:

class SendOrderForm(forms.Form):
   send_option = forms.ModelChoiceField(queryset=Send.objects.all())

型号:

class Send(models.Model):
    name = models.CharField(max_length=50)
    price = models.DecimalField(max_digits=5, decimal_places=2)
    time = models.CharField(max_length=150)

观看次数:

if request.method == 'POST':
        form = SendOrderForm(request.POST)
        if form.is_valid():
            send_option = form.cleaned_data['send_option']

【问题讨论】:

    标签: django


    【解决方案1】:

    你能做的是,

    if request.method == 'POST':
        form = SendOrderForm(request.POST)
        if form.is_valid():
            send_option = form.cleaned_data['send_option'].id
    

    form.cleaned_data['send_option'] 会得到对象,你可以通过.pk.id 得到它的id

    【讨论】:

      【解决方案2】:

      您的Send 模型是否具有返回实例name__unicode____str__ 方法?

      如果是这样,您需要返回实例的id 而不是name

      【讨论】:

      • 更改 unicode 属性是个好主意吗?然后他必须进去,并在应用程序中显示对象的任何地方更改代码
      猜你喜欢
      • 2015-12-03
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 1970-01-01
      相关资源
      最近更新 更多