2

私は django を初めて使用し、テンプレートのモデルからデータを読み取るのに問題があります。

これがモデルです。

class Team(models.Model):
team_name = models.CharField(max_length=30, default="Team")
created = models.DateTimeField(auto_now_add=True)

def __unicode__(self):
    return self.team_name

景色。

def create_team(request):
team = Team.objects.all()
return render_to_response("ideas/profile.html", {'team':team})

そしてテンプレ。

<h2>Available groups: {{team.team_name}} </h2>

これが明らかな修正である可能性は 99% です。とにかくみんなありがとう!

4

1 に答える 1

2

teamはオブジェクトではなく、クエリセットです。単純に言えば、オブジェクトのリストです。テーブルにオブジェクトが 1 つしかない場合でも、それは単なる 1 つのリストです。その結果、モデルのインスタンスであるかのようにモデル属性を参照することはできません。最初にインスタンスを引き出す必要があります。

{% for t in team %}
    {{ t.team_name }}
{% endfor %}

いくつかのメモ。ループが示すように、名前を付けてteamも意味がありません。これは 1 つのことを意味します。次に、単一のエンティティをループしますか? ここでのベスト プラクティスは、単一のアイテムに単数形の名前を付け、クエリセット、リストなどに複数形の名前を付けることです。次に、より理にfor team in teamsかなっ方法を実行します。

次に、属性名にモデル名を使用しないでください。team.team_name同様に機能する場合は冗長team.nameです。別の「名前」属性がある場合は、その属性にプレフィックスを付けますが、モデル自体は最上位の属性名よりも優先される必要があります。

于 2012-09-19T16:17:47.170 に答える