2017-01-16 61 views
0

我有一個奇怪的問題。我正在使用與從Model返回的數據綁定的Select字段。它被定義爲:Django 1.8:問題與使用cleared_data

choices = Subscription.objects.filter(is_full_version=False) 
subscription_id = forms.ModelChoiceField(queryset=choices) 

request.POST返回選項的idvalue屬性,但是當我打電話: form.cleaned_data.get('subscription_id')它,而返回:

'subscription_id': <Subscription: Gold>

Gold是文本而標識。

request.POST而返回我想要什麼: subscription_id': [u'3']

那是什麼?

回答

2

當您從cleaned_data中獲取ModelChoiceField的值時,將獲得模型實例,而不是該id。

從實例中獲取主鍵很容易。請記住處理None

subscription = form.cleaned_data.get('subscription_id') 
if subscription is not None: 
    subscription_id = subscription.pk