2
  1. 私はモデルを持っています

    class tournaments(models.Model):
        # ....
        total_rounds = models.IntegerField(max_length=11, blank=True, null=True)
        # ....
    
        def get_total_rounds_count(self):
            return self.total_rounds
    
  2. ビュー.py:

    def tourney_view(request, offset):
        # .....
        if (offset):
            selected_tournament =  tournaments.objects.get(id=offset)
        return render_to_response('tournament.html', {'tournament': selected_tournament})
    
  3. 「tournament.html」テンプレートで、total_rounds をループしようとしています:

    {% for q in tournament.get_total_rounds_count%}
    {% endfor %}
    

エラーが発生しました: 'long' object is not iterable なぜですか? 私のフィールドはIntegerFieldです。整数値をループしようとしているだけですが、「反復可能ではありません」

4

3 に答える 3

3

次のスニペットを使用できます: http://djangosnippets.org/snippets/1357/

Tournament.get_total_roundsまたは、どちらが返されるかを定義しますrange(get_total_rounds_count)

于 2012-07-08T13:02:22.010 に答える
2

ええ、オットーの方法が最善です。関数を更新して範囲を返すだけです。

 class tournaments(models.Model):
     # ....
     total_rounds = models.IntegerField(max_length=11, blank=True, null=True)
     # ....

     def get_total_rounds_count(self):
         return range(self.total_rounds)
于 2012-07-08T13:11:52.910 に答える
0

forそれは、数字で作図を使用できないためです。

于 2012-07-08T13:00:53.913 に答える