2017-01-16 1 views
0

이상한 문제가 있습니다. 모델에서 반환 된 데이터로 바인딩 된 선택 필드를 사용하고 있습니다.Django 1.8 : cleaned_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 오히려 아이디 텍스트입니다. subscription_id': [u'3']

그런 기능 :

request.POST 오히려 내가 원하는 반환?

답변

2

cleaned_data에서 ModelChoiceField의 값을 가져 오면 id가 아닌 모델 인스턴스를 가져옵니다.

인스턴스에서 기본 키를 쉽게 가져올 수 있습니다. None을 처리하는 것을 잊지 마십시오.

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