2017-01-16 2 views
0

Ich habe ein seltsames Problem. Ich verwende ein Select-Feld, das an Daten gebunden ist, die von Model zurückgegeben wurden. Es ist wie folgt definiert:Django 1.8: Problem mit der Verwendung von cleaned_data

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

request.POST die id von value Attribut Option liefert aber wenn ich rufe: form.cleaned_data.get('subscription_id') es eher zurückgibt:

'subscription_id': <Subscription: Gold>

Gold Text ist eher Id.

request.POST eher zurückgibt, was ich will: subscription_id': [u'3']

Was ist das?

Antwort

2

Wenn Sie den Wert für eine ModelChoiceField aus der cleaned_data abrufen, erhalten Sie die Modellinstanz, nicht die ID.

Es ist einfach, den Primärschlüssel von der Instanz zu erhalten. Denken Sie daran, mit None umzugehen.

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