无法转换

时间:2012-07-11 12:33:04

标签: django foreign-keys

我有一个django modelForm,它已成功提交,直到我在forms.py中添加此代码:

def __init__(self, own_id=None, **kwargs):
    super(WebrequestsForm, self).__init__(**kwargs)
    if own_id:

       self.fields['veh_id1'].queryset = Vehicles.objects.filter(own_id1=own_id)
       self.fields['veh_id2'].queryset = Vehicles.objects.filter(own_id2=own_id) 

我这样做是因为我想限制上述外键的条目。之后,只有相关的选择出现在预期的表格中,但表格无法提交。

我收到以下错误:

Cannot convert <QueryDict: {u'attachment2flag': [u'on'], u'nod_id1': [u'70'], u'vrd_id': [u'1'], u'nod_id2': [u'50'], u'tel': [u'2310566167'], u'directiondb': [u'1'], u'rdateto': [u'1/2/2013'], u'sendmethod': [u'1'], u'fax': [u'2310511559'], u'submitdate': [u'1'], u'email': [u'info@rdfvfvd.com'], u'veh_id2': [u'878'], u'veh_id1': [u'2978'], u'returnflag': [u'1'], u'reqtype': [u'1'], u'remarks': [u'1'], u'csrfmiddlewaretoken': [u'1Vhl04H1HgelkDdnS6IsCw61dtSyitkX'], u'rdatefrom': [u'1/2/2012'], u'id': [u'22065'], u'own_id': [u'148']}> to Decimal

veh_id1和veh_id2是十进制字段,所以我猜测过滤错误尝试保存在那里。如何在下拉列表中返回需要保存此self.fields['veh_id1'].queryset = Vehicles.objects.filter(own_id1=own_id)的对象的ID?

我能感觉到问题出在哪里,但我不知道如何解决这个问题,我是django的新手。

1 个答案:

答案 0 :(得分:1)

解决。问题出在我的modelForm初始化的调用中。 而不是'预期':form = MyForm(request.POST, own_instance.id) 尝试了form = MyForm(data=request.POST, own_id=own_instance.id),它运作良好 因为我最终发现了位置和关键字参数之间的区别。