ModelChoiceField.ID而不是名称

bel*_*sun 4 django

send_option(在视图中)可变我nameSend.我想要IDSend

怎么做?谢谢

形成:

class SendOrderForm(forms.Form):
   send_option = forms.ModelChoiceField(queryset=Send.objects.all())
Run Code Online (Sandbox Code Playgroud)

模型:

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)
Run Code Online (Sandbox Code Playgroud)

浏览次数:

if request.method == 'POST':
        form = SendOrderForm(request.POST)
        if form.is_valid():
            send_option = form.cleaned_data['send_option']
Run Code Online (Sandbox Code Playgroud)

kar*_*ikr 6

你能做的是,

if request.method == 'POST':
    form = SendOrderForm(request.POST)
    if form.is_valid():
        send_option = form.cleaned_data['send_option'].id
Run Code Online (Sandbox Code Playgroud)

form.cleaned_data['send_option']会得到这个对象,你可以id 通过做一个.pk或者得到它.id