2011-07-18 17 views
6

Models.py:テンプレートタグでモデルオブジェクトからDjangoのモデルフィールドの値を取得する方法

class Discussion(models.Model): 
    version = models.TextField(blank=True) 
    team = models.TextField(blank=True) 
    project = models.TextField(blank=True) 
    notes = models.TextField(db_column='Notes', blank=True) # Field name made lowercase. 
    s = models.TextField(blank=True) 
    send_mail_to = models.TextField(blank=True) 
    send_mail_cc = models.TextField(blank=True) 
    date = models.DateTimeField(null=True, blank=True) 

    class Meta: 
     db_table = u'discussion' 

views.py:

p=Discussion.objects.filter(version=m2) 
return render_to_response('report/t2',{"p":p}) 

テンプレート(HTML):

<tr> 
     <td width="20%" class="scratchblackfont12">Release Name :</td> 
     <td><div style="overflow:auto"><input name="Release Name (if any):" autocomplete="on" type="text" class="scratchsearchfield" elname="defaultFocus" id="r1" value="{{p.version}}" READONLY multiline="true" ></div> 
     </td> 
    </tr> 

しかし、テンプレートにはNothing.Pleaseこの問題を解決するのを助けてください表示されます。テンプレートのモデルオブジェクトからモデルのフィールド値を取得したい。

答えて

6

これは、ビューに送信するpがオブジェクトインスタンスではなくQuerySetであるためです。あなたがあなたのビューで次の操作を行う必要があるだろう、特定のpオブジェクトのインスタンスを送信したい場合は

{% for p_object in p %} 
<tr> 
    <td width="20%" class="scratchblackfont12">Release Name :</td> 
    <td><div style="overflow:auto"><input name="Release Name (if any):" autocomplete="on" type="text" class="scratchsearchfield" elname="defaultFocus" id="r1" value="{{p_object.version}}" READONLY multiline="true" ></div> 
    </td> 
</tr> 
{% endfor %} 

p = Discussion.objects.get(version=m2) 

しかしgetは、エラーがスローされますのでご注意以下をお試しくださいクエリーがversion = m2の1つ以上のオブジェクトを返す場合

+0

良い答え@ローリングストーン。私は彼がgetの代わりにfilterを使用していたという事実を完全に忘れていました。私は遅くて質問に答えるのをやめます:) – Brandon

+0

@Brandon haha​​あなたは私が夜遅く与えるいくつかの他の答えを見てください! –

0

あなたの見解では、あなたのモデル(ディスカッション)の名前ではないディスカッション1を参照しました。また、m2の値がどこに割り当てられるかは明らかではありません。

私はそれを確認します:

objects = Discussion.objects.filter(version=m2) 

は、シェルからオブジェクトを返します。最低でも、空のリストが得られます。

コードを適切に書式設定するだけでなく、十分なコンテキストを提供するだけでなく、どこから何が来ているのか、何が何であるのかなどを把握することができます。

+0

こんにちはbrandon discussion1は誤字ミスです.2は変数にバージョン値が含まれています。私はシェルでそれを試してcorrectl.Please私はどのように私はテンプレートでそれを得ることができます助けてください – shiva

+0

p = Discussion.objects.filter(バージョン= m2) オブジェクトのリストを返します。私が使用している戻り値の型として常に必要な単一のオブジェクト p = Discussion.objects.get(version = m2) テンプレートでは{ p.version}}これは動作します。私に時間を費やしてくれたBrandonに感謝します – shiva

関連する問題