2013-04-25 61 views
1

所以,我試圖用我的數據創建一個數據透視表,但我一直得到'NoneType'對象不可迭代。我正在使用Chartit。我的錯誤與「術語」,具體爲:[「tot_ft」]}])這是專門在數據透視圖部分'NoneType'對象在Chartit中是不可迭代的

這裏是我的代碼: 這裏是下面的事情我已經導入:

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 

views.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}) 

models.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) 
+0

你也可以添加追溯 – dusual 2013-04-25 18:55:20

+0

你可以去這個鏈接http://dpaste.com/1073522/ – 2013-04-25 18:59:11

+0

我有一個問題一個單一的領域的總和應該給1個數據點,你只有一個單一的術語/軸你正在這個圖表你想用一個數據點來繪製圖表,你必須有更多的相對位置來創建一個圖表 – dusual 2013-04-25 19:11:44

回答

3

我得到了相同的E RROR。在對chartit源代碼進行一些搜索之後,我找到了解決方案。

data_sourceseries_optionschart_options之外,還有一個可選參數可以給PivotChart構造函數。當沒有給出chart_options時,默認情況下,chartit將它分配給None,導致您得到的錯誤。 這實際上是一個chartit中的錯誤。

要繞過這一點,你應該送一個空的字典作爲chart_options

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

我有同樣的問題,我知道的東西的方式是腳麻是通過將數據發送到一個模板。我把圖表中的數據放在我的「base.html文件中,每當我打開一個不是那個接收數據的模板時,我得到了這個錯誤,請確保你沒有這樣做,

相關問題