2013-02-26 113 views
0

該問題的ID進行比較後顯示從數據庫記錄是IM不能從HREF 比較ID之後以顯示edit_vendor.html記錄PLZ giude有人 我有views.py就像我怎麼能與HREF

def vendor(request,id): 
    key = request.GET.get('id') 
    obj = Vendor.objects.get(id = key) 
    return render_to_response('edit_vendor.html',{'obj': obj},context_instance=RequestContext(request)) 

模板

<a href ='/vendor/{{vendor.id}}/'> edit </a> 

edit_vendor.html

{% for Vendor in obj %} 
<tr> 
<form action="/update/" method="get"> 
    Vendor Name:<input type ='text' name= 'name' value ={{Vendor.name}}></br> 
    Address: <input type ='text' name= 'address' value = {{Vendor.address}}></br> 
    Contact:<input type = 'text' name= 'contact' value = {{Vendor.contact}}></br> 
    Created Date <input type ='text' name='date' value = {{Vendor.created_date}}></br> 
       <input type='submit' name='Submit' value='update' /> 
</form> 
</tr> 
{% endfor%} 
+0

嘗試'OBJ = Vendor.objects.get(ID = ID)',而不是當前'OBJ = Vendor.objects.get(ID =鍵)' – okm 2013-02-26 09:52:05

+0

完美..!非常感謝 – raghu 2013-02-26 09:57:38

回答

0

您使用的是get(),它返回的總是返回一個對象,而不是一個列表。

但讓我們備份並修復您的視圖。

  1. 如果您只希望查詢1個對象,請使用get_object_or_404快捷方式。這很方便,因爲它會自動獲取並捕獲有人試圖獲取不存在的供應商ID的情況。

所以你的觀點應該是這樣的:

from django.shortcuts import render_to_response, get_object_or_404 

def vendor(request, id): 
    vendor = get_object_or_404(Vendor, id=id) 
    return render_to_response('edit_vendor.html', {'vendor': vendor}, context_instance=RequestContext(request)) 

接下來的事情是要記住,get ORM調用返回一個對象,而不是一個列表。所以這個:

{% for Vendor in obj %} 

......是錯的。

你可能只想做做:

<tr> 
    <form action="/update/" method="get"> 
     Vendor Name:<input type ='text' name= 'name' value ={{vendor.name}}></br> 
     Address: <input type ='text' name= 'address' value = {{vendor.address}}></br> 
     Contact:<input type = 'text' name= 'contact' value = {{vendor.contact}}></br> 
     Created Date <input type ='text' name='date' value = {{vendor.created_date}}></br> 
     <input type='submit' name='Submit' value='update' /> 
    </form> 
</tr>