2011-12-22 10 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

関連するモデルを投稿できますか? –

+0

モデルを表示する必要があります。 –

答えて

1

inv.bc_invoice_product_set.allBC_Invoice_Productモデルを返します。この場合は{{ item.product.eng_name }}を使用してください。

BC_Invoice_Productにある外部キーの関係は、であり、bc_productではないことがモデルからわかります。

また、conventionには、モデル名に「小文字」という名前のForeignKeyフィールドを付けることをお勧めします。これにより、関係をたどるのがはるかに簡単になります。

0

あなたがVAを見ることができていますビューの外に出て行く?

import pdb; pdb.set_trace()

inv = ...

後にそして、それはあなたの期待に一致した場合、コンソール内のビットを参照するには、クエリAPIを探る:開発サーバーの火は、スティック。あなたが持っているものはうまくいくはずです。