2017-07-29 25 views
0

ローンのすべてのリストをその特定のローンにリンクされた関連するアドレスとともに取得しようとしています。モデルフィルタクエリに基づいてすべての関連オブジェクトを取得

モデル:

class LoanDetail(models.Model): 
    job_no = models.AutoField('Job No', primary_key=True) 
    loan_account_no = models.CharField('Loan account No', blank=True, max_length=128) 
    job_status = models.IntegerField('Job Status', choices=JOB_STATUS, default=1, db_index=True) 
    applicant_type = models.IntegerField('Applicant type', choices=APPLICANT_TYPE, default=1, db_index=True) 
    customer_name = models.CharField('Customer Name', max_length=128) 

class LoanUserAddress(models.Model): 
    loan = models.ForeignKey(LoanDetail, on_delete=models.CASCADE, related_name="loanuser") 
    address_type = models.ForeignKey(AddressType) 
    house_name = models.CharField('House/Flat/Name', max_length=128) 
    street = models.CharField('Street', max_length=128) 
    area = models.CharField('Area/Location', max_length=128) 

ビュー:

class SearchLoan(APIView, ResponseViewMixin): 

    def get(self, request, *args, **kwargs): 
     loan = kwargs['loan']; 
     address = LoanDetail.objects.filter(loan_account_no__in=[loan]) 

は、これは私がloandetailsと一緒にすべてのアドレスを取得することができますどのようにのみ融資の詳細を返しています。

あなたはちょうどあなたが住所が持つ債権のリストをしたい場合は、リストを取得する負荷

addresses = LoanUserAddress.objects.filter(loan__loan_account_no__in=[loan]) 

のセットのアドレスが必要な場合、私は、応答が {'loan_account_no': '12412412421', 'customer_name': 'Ravi' , address: [ {'id': 1, 'house_name': 'Some aadress'}, {'id': 2, 'house_name': 'Some aadress 2'}, {'id': 3, 'house_name': 'Some aadress 3'}] }

答えて

0

のようになりたいです

loans = LoanDetail.objects.filter(loan_account_no__in=[loan]) 

とクエリセット内の各項目のためにやったあなたのようなローンのあなたは次のようになります属性loanuserにアクセスすることができますこのローンの住所のリスト。 loanuserはForeignKeyフィールドのrelated_nameです。

for loan_item in loans.all(): 
    print(loan_item.loanuser) 
+0

1つの項目のリストで 'in'クエリを使用しても意味がありません。 –

関連する問題