gpt4 book ai didi

python - “NoneType”对象在 Chartit 中不可迭代

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:41 24 4
gpt4 key购买 nike

因此,我尝试用我的数据创建一个数据透视图,但我一直收到“NoneType”对象不可迭代。我正在使用图表。我的错误特别针对“条款”:['tot_ft']}]) 这是特别在数据透视图部分

这是我的代码:以下是我导入的以下内容:

from django.shortcuts import render, get_list_or_404, get_object_or_404, redirect
from django.contrib.auth.decorators import login_required
from basketball.models import Stats, Player, League, Game, Team
from django.contrib.auth import get_user
from django.db.models import Sum
from django.http import HttpResponse, HttpResponseRedirect
from django.core.mail import send_mail, BadHeaderError
from chartit import PivotDataPool, PivotChart

View .py

def player_pivot_chart_view(request):
# Step 1: Create a PivotDataPool with the data we want to retrieve
playerPivotData = PivotDataPool(
series =
[{'options': {
'source': Stats.objects.all(),
'categories': 'player__first_name'},
'terms': {
'tot_ft':Sum('freeThrowsMade')}}])
pivcht = PivotChart(
datasource = playerPivotData,
series_options = [
{'options': {
'type': 'column',
'stacking': True},
'terms': ['tot_ft']}])
return render(request,'basketball/StatsPage.html', {'dataChart':pivcht})

模型.py

class Stats(models.Model):
player = models.ForeignKey(Player)
game = models.ForeignKey(Game)
freeThrowsMade = models.PositiveIntegerField(verbose_name='FTm', default = 0)
freeThrowsAttempted = models.PositiveIntegerField(verbose_name='FTa', default = 0)
twoPointsMade = models.PositiveIntegerField(verbose_name='2Pm', default = 0)
twoPointsAttempted = models.PositiveIntegerField(verbose_name='2Pa', default = 0)
threePointsMade = models.PositiveIntegerField(verbose_name='3Pm', default = 0)
threePointsAttempted = models.PositiveIntegerField(verbose_name='3Pa', default = 0)
blocks = models.PositiveIntegerField(default = 0)
steals = models.PositiveIntegerField(default = 0)
assists = models.PositiveIntegerField(default = 0)
fouls= models.PositiveIntegerField(default = 0)

最佳答案

我遇到了同样的错误。在 chartit 源代码中稍微搜索后,我找到了解决方案。

除了 data_sourceseries_options 之外,您还可以为 PivotChart 构造函数提供一个可选参数:chart_options。当未给出 chart_options 时,chartit 默认将 None 分配给它,从而导致您遇到的错误。这实际上是 chartit 中的一个错误。

要绕过这个,你应该发送一个空字典作为chart_options:

pivcht = PivotChart(
datasource = playerPivotData,
series_options = [
{'options': {
'type': 'column',
'stacking': True},
'terms': ['tot_ft']}],
chart_options = {})

关于python - “NoneType”对象在 Chartit 中不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16222076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com