Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get django models field value from model object in template tags

Models.py:

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})

Template(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>

But the template displays Nothing.Please help me to solve this problem.I want to get the model field value from model object in template.

like image 410
shiva Avatar asked Jul 18 '11 03:07

shiva


1 Answers

That's because the p that you're sending to your view is a QuerySet, not an object instance. Try the following:

{% 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 %}

If you'd like to send a specific p object instance you'd have to do the following in your view:

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

but note that get will throw an error if the query returns more than a single object with version=m2.

like image 81
rolling stone Avatar answered Oct 14 '22 04:10

rolling stone