2017-01-16 6 views
0

私は奇妙な問題を抱えています。モデルから返されたデータでバインドされたSelectフィールドを使用しています。それは次のように定義されますDjango 1.8:cleaned_dataの使用に関する問題

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

request.POSTオプションのvalue属性からidを返しますが、私は呼び出すとき: form.cleaned_data.get('subscription_id')それはむしろ返します

'subscription_id': <Subscription: Gold>

Goldは、IDではなくテキストです。

request.POSTではなく、私が欲しいものを返します。 subscription_id': [u'3']

は、何ですか?

答えて

2

ModelChoiceFieldの値をcleaned_dataから取得すると、IDインスタンスではなくモデルインスタンスが取得されます。

インスタンスから主キーを取得するのは簡単です。 Noneを処理することを忘れないでください。

subscription = form.cleaned_data.get('subscription_id') 
if subscription is not None: 
    subscription_id = subscription.pk 
関連する問題