0

我有一个 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 的新手。


Clojure - 计算序列中向量的唯一值

作为 Clojure 的新手,我似乎无法弄清楚如何做一些看起来应该很简单的事情。我只是看不到它。我有一个向量序列。假设每个向量都有两个值,分别代表客户编号和发票编号,每个向量代表一件商品的销售。所以它看起来像这样:

([ 100 2000 ] [ 100 2000 ] [ 101 2001 ] [ 100 2002 ])

我想计算唯一客户和唯一发票的数量。所以这个例子应该产生向量

[ 2 3 ]

在 Java 或另一种命令式语言中,我将遍历 seq 中的每个向量,将客户编号和发票编号添加到一个集合中,然后计算每个集合中值的数量并返回它。我看不到执行此操作的功能方法。

谢谢您的帮助。

编辑:我应该在我最初的问题中指定向量的序列是数百万的 10 并且实际上不止两个值。因此,我只想通过 seq 一次,并在通过 seq 的那一次计算这些唯一计数(以及一些总和)。

4

1 回答 1

1

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

于 2012-07-11T15:56:40.243 回答