0

我有一个带有多对多列的模型。我想限制用户可以提交的组数。

这就是我正在做的

        group_name = [g.id for g in form.cleaned_data['groups']]
        gr=group_name.id.count()
        if gr>3:
            raise forms.ValidationError("you can only add 3 groups")
        return group_name

错误是:

 Exception Value: 'list' object has no attribute 'id'

我似乎找不到我做错了什么。谢谢。

4

3 回答 3

2

您正在创建一个list对象,因此标准list操作有效。

group_name_ids = [g.id for g in form.cleaned_data['groups']]
group_id_count = len(group_name_ids)

似乎这"groups"是一个模型对象列表,因此您可以通过以下方式获得计数:

group_count = len(form.cleaned_data["groups"])

但是,由于您返回了生成的构建group_name_ids列表,因此您最好只得到len()它。

于 2012-09-18T02:45:38.633 回答
0

group_name是一个列表,group_name.id无法解析:)

于 2012-09-18T02:23:34.063 回答
0
>>> nk=['city1','city2','city1','city3','city1']
>>> from collections import Counter
>>> mycount=Counter()
>>> for word in nk:
...     mycount[word]+=1
...     
>>> mycount['city1']
3
>>> 

参考 python 文档http://docs.python.org/library/collections.html

于 2012-09-18T02:50:26.153 回答