我有一个有很多柱子的模型。我想限制用户可以提交的组的数量。
这就是我要做的
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'我似乎找不到我做错了什么。谢谢。
发布于 2012-09-18 10:45:39
您正在创建一个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"])但是,既然您返回了生成的built group_name_ids列表,那么您也可以只获取该列表的len()。
发布于 2012-09-18 10:23:34
group_name是一个列表,无法解析group_name.id :)
发布于 2012-09-18 10:50:26
>>> 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
https://stackoverflow.com/questions/12469537
复制相似问题