Как получить значение поля моделей Django из объекта модели в тегах шаблона - PullRequest
6 голосов
/ 18 июля 2011

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

Шаблон (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>

Но в шаблоне ничего не отображается. Пожалуйста, помогите мне решить эту проблему. Я хочу получить значение поля модели из объекта модели в шаблоне.

Ответы [ 2 ]

6 голосов
/ 18 июля 2011

Это потому, что p, который вы отправляете в ваше представление, является QuerySet, а не экземпляром объекта. Попробуйте следующее:

{% 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, вам необходимо выполнить следующие действия:

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

но учтите, что get выдаст ошибку, если запрос вернет более одного объекта с версией = m2.

0 голосов
/ 18 июля 2011

По вашему мнению, вы ссылались на Обсуждение1, а не на название вашей модели (Обсуждение).Также не очевидно, где назначается значение m2.

Я бы проверил, что:

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

возвращает объекты из оболочки.Как минимум, вы получите пустой список.

Это очень нам поможет, если вы правильно отформатируете свой код, в дополнение к предоставлению достаточного контекста, чтобы мы могли сказать, откуда что происходит, что и чтона, чтобы дать ответ.

...