Python 饼图的查询集
我想我只是犯了一个简单的错误,但我似乎无法解决它。我试图创建一些虚假数据,并通过不同类型的用户进行分析,然后将其放入饼图中。这是我的models.py: 来自django.db导入模型的Python 饼图的查询集,python,django-rest-framework,django-queryset,Python,Django Rest Framework,Django Queryset,我想我只是犯了一个简单的错误,但我似乎无法解决它。我试图创建一些虚假数据,并通过不同类型的用户进行分析,然后将其放入饼图中。这是我的models.py: 来自django.db导入模型的 进口工厂 进口工厂.django 进口工厂 从日期时间导入日期时间 从django.core.validators导入MinValueValidator、MaxValueValidator 从冒牌货进口冒牌货 从faker.providers导入BaseProvider 随机输入 类用户(models.Mode
进口工厂
进口工厂.django
进口工厂
从日期时间导入日期时间
从django.core.validators导入MinValueValidator、MaxValueValidator
从冒牌货进口冒牌货
从faker.providers导入BaseProvider
随机输入
类用户(models.Model):
name=models.CharField(最大长度=64)
地址=models.CharField(最大长度=128)
电话号码=models.CharField(最大长度=32)
access_date=models.DateTimeField(默认值=datetime.now(),blank=True)
session_duration=models.IntegerField(默认值=0,验证器=[MinValueValidator(0),
MaxValueValidator(5)])
流量源=模型.字符域(最大长度=32)
created_account=models.BooleanField(默认值=True)
paid_customer=models.BooleanField(默认值=True)
user\u type=models.CharField(最大长度=128,默认值为'all\u others')
类UserFactory(factory.django.DjangoModelFactory):
类元:
模型=用户
name=factory.Faker('name')
地址=工厂。伪造者(“地址”)
phone\u number=工厂.Faker('phone\u number'))
access\u date=factory.Faker('date')
会话持续时间=factory.Faker('random_int')
流量_source=factory.fuzzy.FuzzyChoice(['Google','Facebook'])
已创建\u帐户=工厂.Faker('pybool'))
付费客户=工厂冒牌货('pybool')
用户类型=factory.fuzzy.FuzzyChoice(['已注册','已支付','所有其他']))
和我的视图.py
:
从django.exe导入渲染
从django.db.models导入总和
从django.http导入JsonResponse
从mysite.models导入用户
def home(请求):
返回呈现(请求“home.html”)
def饼图(请求):
标签=[User.User\u type]
registered\u user=user.objects.filter('registered')
paid\u user=user.objects.count('paid')
all\u others=User.objects.count('all\u others')
数据=[注册用户、付费用户、所有其他用户]
#queryset=User.objects.order_by('-access_date'))
#对于queryset中的用户:
#labels.append(user.user\u类型)
#data.append(user.user\u计数)
返回渲染(请求'pie_chart.html'{
“标签”:标签,
“数据”:数据,
})
我刚刚开始与querysets合作,因此非常感谢您的帮助
编辑:这是我收到的错误消息:
回溯(最近一次呼叫最后一次):
文件“/Users/ryan/anaconda3/lib/python3.7/site packages/django/core/handlers/exception.py”,第34行,在内部
响应=获取响应(请求)
文件“/Users/ryan/anaconda3/lib/python3.7/site packages/django/core/handlers/base.py”,第115行,在“获取”响应中
response=self.process\u异常\u由\u中间件(e,请求)
文件“/Users/ryan/anaconda3/lib/python3.7/site packages/django/core/handlers/base.py”,第113行,在“获取”响应中
响应=包装的回调(请求,*回调参数,**回调参数)
文件“/Users/ryan/All_Django/FinalProject/mysite/views.py”,饼图第15行
registered\u user=user.objects.filter('registered')
文件“/Users/ryan/anaconda3/lib/python3.7/site packages/django/db/models/manager.py”,第82行,在manager_方法中
返回getattr(self.get_queryset(),name)(*args,**kwargs)
文件“/Users/ryan/anaconda3/lib/python3.7/site packages/django/db/models/query.py”,第904行,在过滤器中
返回self.\u filter\u或\u exclude(False、*args、**kwargs)
文件“/Users/ryan/anaconda3/lib/python3.7/site packages/django/db/models/query.py”,第923行,在过滤器或排除中
clone.query.add_q(q(*args,**kwargs))
文件“/Users/ryan/anaconda3/lib/python3.7/site packages/django/db/models/sql/query.py”,第1350行,在add_q中
子句,self.\u添加(q\u对象,self.used\u别名)
文件“/Users/ryan/anaconda3/lib/python3.7/site packages/django/db/models/sql/query.py”,第1381行,在添加q中
检查可过滤=检查可过滤,
文件“/Users/ryan/anaconda3/lib/python3.7/site packages/django/db/models/sql/query.py”,第1247行,内置过滤器
arg,value=filter\u expr
异常类型:ValueError位于/mysite/饼图/
异常值:太多的值无法解压缩(预期为2)谢谢大家的输入。我可以通过以下对我的views.py的更改来解决这个问题。请随意留下其他评论,但我现在就关闭它
from django.shortcuts import render
from django.db.models import Sum
from django.http import JsonResponse
from mysite.models import User
def home(request):
return render(request, 'home.html')
def pie_chart(request):
queryset = User.objects.order_by('-access_date')
total_registered = 0
total_paid = 0
total_others = 0
labels = ['total_registered', 'total_paid', 'total_others']
for user in queryset:
if user.created_account == 1:
total_registered = total_registered + 1
elif user.paid_customer == 1:
total_paid = total_paid + 1
elif user.created_account == 0 and user.paid_customer == 0:
total_others = total_others + 1
data = [total_registered, total_paid, total_others]
return render(request, 'pie_chart.html', {
'labels': labels,
'data': data,
})
@10号代表,不确定你是否改变了什么?看起来不像。你有什么意见吗?谢谢你的帮助!我修正了你的格式。它被缩进了4个空格,有些人会投你反对票。如果你想知道我到底做了什么,请单击“加”,我对django一无所知。对不起。@10代表,好的,谢谢。我不知道,但是谢谢你的提示@rmoore35您需要显示您得到的全部错误。另外,您使用哪个库来制作图表?