2011-07-18 19 views
6

Models.py:Làm thế nào để nhận được giá trị lĩnh vực mô hình django từ đối tượng mô hình trong mẫu thẻ

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> 

Nhưng mẫu hiển thị Nothing.Please giúp tôi giải quyết vấn đề này. Tôi muốn lấy giá trị trường mô hình từ đối tượng mô hình trong mẫu.

Trả lời

6

Đó là vì p mà bạn đang gửi cho chế độ xem của mình là QuerySet, không phải là một cá thể đối tượng. Hãy thử như sau:

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

Nếu bạn muốn gửi một ví dụ p đối tượng cụ thể mà bạn sẽ phải làm như sau trong quan điểm của bạn:

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

nhưng lưu ý rằng get sẽ ném ra một lỗi nếu truy vấn trả về nhiều hơn một đối tượng có phiên bản = m2.

+0

Câu trả lời hay là @rolling stone. Tôi hoàn toàn bỏ lỡ một thực tế rằng ông đã sử dụng bộ lọc thay vì nhận được. Tôi sẽ ngừng trả lời các câu hỏi quá muộn :) – Brandon

+0

@ Brandon haha ​​bạn sẽ thấy một số câu trả lời khác tôi đưa ra vào ban đêm! –

0

Trong chế độ xem của bạn, bạn đã tham khảo Discussion1, không phải là tên của mô hình của bạn (Thảo luận). Nó cũng không rõ ràng, nơi giá trị của m2 được giao.

tôi sẽ xác minh rằng:

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

lợi nhuận các đối tượng từ vỏ. Ở mức tối thiểu, bạn sẽ nhận được một danh sách trống.

Nó giúp chúng tôi rất nhiều nếu bạn định dạng mã của mình một cách chính xác, ngoài việc cung cấp đủ ngữ cảnh để chúng tôi có thể biết mọi thứ đến từ đâu, cái gì và vân vân, để cung cấp câu trả lời.

+0

Hi brandon discussion1 là lỗi typo.m2 là biến chứa giá trị phiên bản. Tôi thử nó trong vỏ nó hoạt động correctl.Xin vui lòng giúp tôi làm thế nào tôi có thể nhận được nó trong mẫu – shiva

+0

p = Discussion.objects.filter (phiên bản = m2) trả về một danh sách các đối tượng. Vì vậy, p [0]. 'Phiên bản' cho kết quả mong muốn. Vì vậy đối với tôi tôi Luôn yêu cầu đối tượng đơn như một kiểu trả về tôi sử dụng p = Discussion.objects.get (version = m2) trong mẫu tôi sử dụng {{ p.version}} Nó hoạt động. Cảm ơn Brandon đã dành thời gian cho tôi – shiva

Các vấn đề liên quan