0

問題は、href plzからのIDを比較した後、edit_vendor.htmlにレコードを表示できないことです。

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

1 に答える 1

0

あなたが使用しget()ている return は、リストではなく、常に単一のオブジェクトを返します。

しかし、戻ってビューを修正しましょう。

  1. 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))

次に、getORM 呼び出しはリストではなく単一のオブジェクトを返すことに注意してください。したがって、この:

{% 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>
于 2013-02-26T09:55:58.897 に答える