首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >counting queryset返回'list‘对象没有属性'id’

counting queryset返回'list‘对象没有属性'id’
EN

Stack Overflow用户
提问于 2012-09-18 10:18:55
回答 3查看 2.2K关注 0票数 0

我有一个有很多柱子的模型。我想限制用户可以提交的组的数量。

这就是我要做的

代码语言:javascript
复制
        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

错误是:

代码语言:javascript
复制
 Exception Value: 'list' object has no attribute 'id'

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-18 10:45:39

您正在创建一个list对象,所以标准的list操作可以正常工作。

代码语言:javascript
复制
group_name_ids = [g.id for g in form.cleaned_data['groups']]
group_id_count = len(group_name_ids)

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

代码语言:javascript
复制
group_count = len(form.cleaned_data["groups"])

但是,既然您返回了生成的built group_name_ids列表,那么您也可以只获取该列表的len()

票数 2
EN

Stack Overflow用户

发布于 2012-09-18 10:23:34

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

票数 0
EN

Stack Overflow用户

发布于 2012-09-18 10:50:26

代码语言:javascript
复制
>>> 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12469537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档