ModelChoiceField。 ID而不是名称

时间:2012-10-02 11:06:19

标签: django

send_option(视图中)变量中,nameSend。 我想ID

Send

怎么做?感谢

形式:

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']

2 个答案:

答案 0 :(得分:5)

你能做的是,

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']会获得该对象,您可以通过id.pk

获取.id

答案 1 :(得分:-1)

您的Send模型是否有返回__unicode__实例的__str__name方法?

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