【问题标题】:Django 1.8: Issue with using cleaned_dataDjango 1.8:使用cleaned_data的问题
【发布时间】:2017-05-31 09:59:43
【问题描述】:

我遇到了一个奇怪的问题。我正在使用与模型返回的数据绑定的 Select 字段。定义为:

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']

那是什么?

【问题讨论】:

    标签: django python-2.7 django-forms


    【解决方案1】:

    当您从 cleaned_data 获取 ModelChoiceField 的值时,您将获得模型实例,而不是 id。

    从实例中获取主键很容易。请记住处理None

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

    【讨论】:

      猜你喜欢
      • 2015-11-15
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      相关资源
      最近更新 更多