2017-08-30 27 views
0

你好,我想把我的球員在HTML根據從我的模型中的位置,如果一個球員位置字段在模型中加入「前鋒」像我希望把他們的div與「前鋒「班。我怎樣才能做到這一點?定位在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)我的情況是一個更好的辦法。因爲我有很多領域和功能,目前我需要的時間太多。但是我猜如果我以前用這種方式計劃過這種結構,這種方式會非常有效。再一次非常感謝你。 –