2017-08-30 16 views
0

こんにちは私は選手のポジションフィールドがモデルの「ストライカー」として追加されているように自分のポジションに基づいて自分のポジションに応じてhtmlに入れたいと思っています。「ストライカー"クラス。どうやってやるの?ここ モデルによるDjangoテンプレートの配置

は私のmodels.py

class Player(models.Model): 
position = models.CharField(max_length=120, verbose_name="Position") 
player_name = models.CharField(max_length=120, verbose_name="Player") 
player_age = models.IntegerField(null=True, blank=True, verbose_name="Player Age") 

されており、ここで私のhtmlです。

<div class="Strikers"></div> 

<div class="Midfielders"></div> 

ここに私のviews.pyがあります。

def player_index(request): 
players = Player.objects.all() 
return render(request, "players/index.html", {'players': players}) 
事前にそんなに

おかげ..

答えて

0

は、このようなあなたのテンプレートを作成します。

{% for player in players %} 

    {% if player.position == 'striker' %} 
    <div class="Strikers"> 
    # Put your content here 
    </div> 
    {% endif %} 

    {% if player.position == 'midfielder' %} 
    <div class="Midfielders"> 
    # Put your content here 
    </div> 
    {% endif %} 

{% endfor %} 

を使用すると、データベース内の位置に同じvalueを持っていることを確認してください、あなたはif状態でチェックしているもの。

それが動作します。

+0

ありがとうございました。そして、私の場合は、このソリューションは、私は多くのフィールドを持っているので、すべての関数を変更するにはあまりにも多くの時間がかかるので、前の(変更views.py)よりも優れています..ありがとうございました.. –

0

ビュー自体のプレーヤーを分離する方がよい。

def player_index(request): 
    strikers = Player.objects.filter(position='striker') 
    midfielders = Player.objects.filter(position='midfielder') 
    return render(request, "players/index.html", {'strikers': strikers, 'midfielders':midfielders}) 
+1

ありがとうございました私は他の答え(htmlを変更したもの)についてコメントしたので、私の場合の方が良い方法です。私は多くのフィールドと機能を持っているので、現時点では私には時間がかかりすぎます。しかし、私は前にこの方法で構造を計画していたと思いますが、この方法は非常に効率的です。もう一度ありがとうございます。 –

関連する問題