我有一个有很多专栏的模型。我想限制用户可以提交的组数。
这就是我正在做的事情
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'
我似乎无法找到我做错的事。感谢。
答案 0 :(得分: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()
列表。
答案 1 :(得分:0)
group_name
是一个列表,group_name.id
无法解析:)
答案 2 :(得分:0)
>>> nk=['city1','city2','city1','city3','city1']
>>> from collections import Counter
>>> mycount=Counter()
>>> for word in nk:
... mycount[word]+=1
...
>>> mycount['city1']
3
>>>