2011-07-18 15 views
6

Models.py:şablon etiketleri modeli nesneden Django modelleri alan değerini almak nasıl

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

Şablon (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> 

Ama şablon Nothing gösterir.Lütfen bu problemi çözmek için bana yardımcı olun. Modeldeki model nesnesinden model alan değerini almak istiyorum.

cevap

6

Bu nedenle, görünümünüze gönderdiğiniz p, bir nesne örneğidir, bir QuerySet'tir. Aşağıdakileri deneyin: Belirli bir p nesne örneğini göndermek isterseniz

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

Eğer görünümünde aşağıdakileri yapmanız gerekir:

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

ama get hata atmak unutmayın sorgu, sürüm = m2 ile tek bir nesneden daha fazla döndürürse.

+0

Iyi cevap @rolling taş. Tamamen filtre kullanmak yerine onu kullandığını çok özledim. Soruları çok geç cevaplamaya son vereceğim :) – Brandon

+0

@Brandon haha ​​Geceleri verdiğim diğer cevaplardan bazılarını görmelisiniz! –

0

Görünümünüzde, modelinizin adı olmayan Tartışma1'i (Tartışma) belirtmişsinizdir. Ayrıca m2 değerinin atandığı yer de belli değil.

I doğrulamak olacaktır:

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

döner kabuk nesneleri. En azından boş bir liste alacaksınız.

Kodunuzu düzgün bir şekilde biçimlendirdiğinizde, yeterli bağlam sağlamasının yanı sıra, sorunun nasıl sağlanacağını, neyin, neyin, neyin sağlandığını da söyleyebilmemiz için bize yardımcı olur.

+0

Merhaba brandon discussion1 bir yazım hatası error.m2, bir sürüm değeri içerir. Ben kabuk içinde deneyin, doğru çalışır.Lütfen bana nasıl yardımcı olabilirim? – shiva

+0

p = Discussion.objects.filter (sürüm = m2) , nesnelerin bir listesini döndürür. p [0]. 'version' istenen sonucu verir. Benim için her zaman tek bir nesneyi kullanmam gerekir. Bu tür bir döndürme türü olarak kullanıyorum p = Discussion.objects.get (sürüm = m2) şablonunda kullanıyorum {{ p.version}} Çalışıyor. Teşekkürler Brandon benim için zaman geçirmek için – shiva