2011-12-22 35 views
0

我試圖在以下代碼中訪問bc_product.eng_name,但它不起作用。 bc_product表的外鍵在bc_invoice_product表中。有人能指引我朝着正確的方向嗎?無法訪問Django中的值

查看

def invoice_pdf(request, inv_no): 

    inv = BC_Invoice.objects.select_related().get(invoice_no=inv_no) 
    return render_to_pdf('bc_invoice_pdf.html', {'pagesize': 'A4', 
                'inv': inv}) 

模板

{% for item in inv.bc_invoice_product_set.all %} 
    <tr> 
     <td align=center>{{ item.unit_quantity }}</td> 
     <td align=center>{{ item.bc_product.eng_name }}</td> 
     <td align=center>{{ item.unit_price }}</td> 
     <td align=center>{{ item.unit_amount }}</td> 
    </tr> 
{% endfor %} 

UPDATE:

型號

class BC_Product(models.Model): 
    ............ 
    eng_name = models.CharField(max_length=200) 

class BC_Invoice(models.Model): 
    ............  
    product = models.ManyToManyField(BC_Product, through='BC_Invoice_Product') 

class BC_Invoice_Product(models.Model): 
    ............ 
    invoice = models.ForeignKey(BC_Invoice) 
    product = models.ForeignKey(BC_Product) 
+0

你能發佈你的相關模型嗎? – 2011-12-22 07:52:50

+0

你應該展示你的模型。 – 2011-12-22 07:52:51

回答

1

在我看來,inv.bc_invoice_product_set.all返回BC_Invoice_Product模型,在這種情況下,您應該使用{{ item.product.eng_name }}

從您的模型可以看出,在BC_Invoice_Product中的外鍵關係爲product而不是bc_product

此外,convention是將ForeignKey字段命名爲模型名稱,lowercased - 這可能會使它更容易遵循關係。

0

你能看的VA在視野外看起來好嗎?開發服務器的火,堅持:

import pdb; pdb.set_trace()

inv = ...

後,探索查詢API控制檯有點看它是否符合你的期望。你有什麼應該工作。