回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试将字符串转换为int,这样我就可以保持一个正在运行的total,并希望能够在django模板中输出。</p>
<pre><code>def stats(request):
stats = []
players = Player.objects.all()
for player in players:
player_stats = PlayerStat.objects.filter(player__id=player.pk)
for n,stat in enumerate(player_stats):
if n == 0:
passing_completions = stat.passing_completions
else:
passing_completions += stat.passing_completions
stats.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>((player.first_name, player.last_name, player.team, passing_completions))
return render_to_response('preps/stats.html', {'stats': stats, })
</code></pre>
<p>我试过在stat.passing_completions周围添加int(),但这只会抛出错误<code>invalid literal for int() with base 10: ''</code>。</p>
<p>因此,我使用<code>isdigit()</code>方法来确保只有带数字的字符串尝试进行如下转换:</p>
<pre><code>for player in players:
player_stats = PlayerStat.objects.filter(player__id=player.pk)
for n,stat in enumerate(player_stats):
if n == 0:
if stat.passing_completions.isdigit():
passing_completions = int(stat.passing_completions)
else:
if stat.passing_completions.isdigit():
passing_completions += int(stat.passing_completions)
stats.append((player.first_name, player.last_name, player.team, passing_completions))
</code></pre>
<p>但是我得到了<code>Caught TypeError while rendering: 'int' object is not iterable</code>的错误</p>
<p>模型结构</p>
<pre><code>class PlayerStat(models.Model):
player = models.ForeignKey(Player)
week_num = models.CharField(
max_length = 10,
choices = (('1', 'Sep 2nd',), ('2', 'Sep 9th',), ('3', 'Sep 16th',),('4', 'Sep 23rd',), ('5', 'Sep 30th',), ('6', 'Nov 2nd',),('7', 'Nov 7th',), ('8', 'Nov 14th',), ('9', 'Nov 21st',),('10', 'Nov 28th',), ('11', 'Dec 4th',), ('12', 'Dec 11th',), ),
blank = True,
null=True
)
rushing_attempts = models.CharField(
max_length = 100,
verbose_name = "Rushing Attempts",
blank=True
)
rushing_yards = models.CharField(
max_length = 100,
verbose_name = "Rushing Yards",
blank=True
)
rushing_touchdowns = models.CharField(
max_length = 100,
verbose_name = "Rushing Touchdowns",
blank=True
)
passing_completions = models.CharField(
max_length = 100,
verbose_name = "Passing Completions",
blank=True
)
passing_attempts = models.CharField(
max_length = 100,
verbose_name = "Passing Attempts",
blank=True
)
passing_yards = models.CharField(
max_length = 100,
verbose_name = "Passing Yards",
blank=True
)
passing_touchdowns = models.CharField(
max_length = 100,
verbose_name = "Passing Touchdowns",
blank=True
)
receptions = models.CharField(
max_length = 100,
verbose_name = "Receptions",
blank=True
)
receiving_yards = models.CharField(
max_length = 100,
verbose_name = "Receiving Yards",
blank=True
)
receiving_touchdowns = models.CharField(
max_length = 100,
verbose_name = "Receiving Touchdowns",
blank=True
)
</code></pre>
<p>任何帮助都将不胜感激。</p>
<p>谢谢</p>