2016-03-29 18 views
0

Django çerçevesinde yeni. Veritabanındaki tüm nesnelerin listesini gösteren bir şablon var. Listedeki herhangi bir nesneyi tıkladığınızda, söz konusu nesnenin nesne ayrıntılarını gösteren başka bir sayfaya yönlendirilmelidir. Şu anda veritabanındaki nesnelerin listesini alabildim ancak nesne kimliğini bir sonraki şablona iletemedim. İşte Nesne veya nesne kimliğini başka bir şablona nasıl geçirirsiniz

İşte benim views.py

def homepage(request): 
    context = {} 
    items = AddInv.objects.all() 
    return render(request, "selly/homepage.html", {'items': items}) 

def item(request, item_id): 
    context = {} 
    each_item = AddInv.objects.get(pk=item_id) 
    return render(request, "selly/item.html", {'each_item':each_item}) 

tüm nesneleri İşte

<div> 
    {% for product in items %} 
    <form method="POST" action="/selly/item/{{product.pk}}" item_id="{{product.pk}}"> 
     {% csrf_token %} 
     <td> 
      <p><a href="/selly/item/"><img src="{{product.docfile.url}}" class="img-circle" width="150" height="150" align="middle"></img></a></p> 
      <br>* Description is : {{product.description}} 
      <br>* Price is : {{product.price}} 
      <br>* Quantity is : {{product.quantity}} 
      <br>* Sold is : {{product.sold}} 
      <br>* Total Paypent is : {{product.total_payments}} 
      <br>* Item Remaining is : {{product.item_remaining}} 
      <p>{{product.id}}</p> 
      <br> 
      <br> 
     </td> 
    </form> 
    {% endfor %} 
</div> 

gösteren şablonu tıklanan nesnenin detay görüntülemek için şablon olduğunu

<form method="POST" action="/selly/item/" item_id="{{product.pk}}"> 
    {% csrf_token %} 
    <p><a href="/selly/item/"><img src="{{product.docfile.url}}" class="img-circle" width="150" height="150" align="middle"></img></a></p> 
    <p>Description is : {{product.description}}</p> 
    <p>Price is : {{product.price}}</p> 
    <p>Sold is : {{product.sold}}</p> 
    <p>Item Remaining is : {{product.item_remaining}}</p> 
    <p>Quantity is : <input type="number" default="0"></p> 
    <br> 
    <input type="submit" class="btn btn-primary" value="Add to Cart"> 

</form> 

cevap

0

Yeniden yönlendirme bir form gerektirmiyorsa, ayrıntı sayfası için bir URL tanımlarsınız. item() olarak vardı) ve liste görünümü (homepage()) o sayfaya işaret bağlantıyı ayarlayın:

<div> 
    {% for product in items %} 
     <td> 
      <p><a href="/selly/item/{{ product.pk }}"><img src="{{product.docfile.url}}" class="img-circle" width="150" height="150" align="middle"></img></a></p> 
      <br>* Description is : {{product.description}} 
      <br>* Price is : {{product.price}} 
      <br>* Quantity is : {{product.quantity}} 
      <br>* Sold is : {{product.sold}} 
      <br>* Total Paypent is : {{product.total_payments}} 
      <br>* Item Remaining is : {{product.item_remaining}} 
      <p>{{product.id}}</p> 
      <br> 
      <br> 
     </td> 
    {% endfor %} 
</div> 

Django doc uymanız gereken very detailed example sahiptir. Bilmen gereken her şeyi açıklıyor.

0

Bu durumda formunu (yalnızca bağlantı listesi) kullanmazdım, ancak bu bir sorun değil.

def item_detail(request,item_id): 
return render(request, "some_template.html") 

Ve böylece ürün detay için şablonu olmalıdır:

<form method="POST" action="/selly/item_detail/{{each_item.id}}" item_id="{{each_item.id}}"> 
    {% csrf_token %} 
    <p><a href="/selly/item_detail/{{each_item.id}}"><img src="{{product.docfile.url}}" class="img-circle" width="150" height="150" align="middle"></img></a></p> 
    <p>Description is : {{product.description}}</p> 
    <p>Price is : {{product.price}}</p> 
    <p>Sold is : {{product.sold}}</p> 
    <p>Item Remaining is : {{product.item_remaining}}</p> 
    <p>Quantity is : <input type="number" default="0"></p> 
    <br> 
    <input type="submit" class="btn btn-primary" value="Add to Cart"> 

</form> 

Yani deneyelim ben gibi yeni görünümü işlevini tanımlarsınız her ürün detayları için

.

0

Ankraj öğesini öğe detaylarıyla birlikte href olarak kullanın (en iyi uygulama django url etiketini kullanacaktır). Ayrıca, öğe ayrıntıları öğelerinin item_id adlı bir parametreye izin verdiğinden emin olun.

<div> 
     {% for product in items %} 
     <a href="/selly/item/{{product.pk}}"> 
       <p><a href="/selly/item/"><img src="{{product.docfile.url}}" class="img-circle" width="150" height="150" align="middle"></img></a></p> 
       <br>* Description is : {{product.description}} 
       <br>* Price is : {{product.price}} 
       <br>* Quantity is : {{product.quantity}} 
       <br>* Sold is : {{product.sold}} 
       <br>* Total Paypent is : {{product.total_payments}} 
       <br>* Item Remaining is : {{product.item_remaining}} 
       <p>{{product.id}}</p> 
       <br> 
       <br> 
     </a> 
     {% endfor %} 
    </div>