2016-04-22 14 views
0

詳細ビューでプラ​​イマリキーに基づいてオブジェクトをフィルタリングしようとしています。私のviews.pyやその他の方法でプライマリキーを呼び出す方法はありますか?ここに私のコードです:Django DetailView:プライマリキーに基づくオブジェクトのフィルタリング

models.py

class Accounts(models.Model): 
    account_name = models.CharField(max_length=50) 
    pricing_id = models.ForeignKey('Pricing') 

class OrderRecords(models.Model): 
    order_id = models.ForeignKey('Orders') 
    account_id = models.ForeignKey('Accounts') 
    item_id = models.ForeignKey('Items') 

views.py

class AccountDetailView(generic.DetailView): 
    model = Accounts 

    template_name = "orders/accountdetail.html" 

    def get_context_data(self, **kwargs): 
     context = super(AccountDetailView, self).get_context_data(**kwargs) 
     context['orderrecords'] = OrderRecords.objects.filter(????????) 
     return context 

更新:

views.py

は、これは私が作った変化でした

class AccountDetailView(generic.DetailView): 
    model = Accounts 

    template_name = "orders/accountdetail.html" 

    def get_context_data(self, **kwargs): 

     pk = self.kwargs['pk'] 

     context = super(AccountDetailView, self).get_context_data(**kwargs) 
     context['orderrecords'] = OrderRecords.objects.filter(account_id=pk) 
     return context 

答えて

1

はい、あなたの意見では、単純に呼び出す:

def get_context_data(self, **kwargs): 
    pk = kwargs.get('pk') # this is the primary key from your URL 
    # your other code 
    context = super(AccountDetailView, self).get_context_data(**kwargs) 
    context['orderrecords'] = OrderRecords.objects.filter(????????) 
    return context 
+0

わかりましたので、私が使用した:PK = self.kwargs [ 'PK'] ''とそれが働きました。ありがとう! –

関連する問題