TransactionDetailのオブジェクト取得するのに、リレーションで繋がっていないTransactionHeadのカラム情報を確認してfilterをかけたいと考えているのですが可能でしょうか?
・やりたいこと
TransactionHeatのstoreCodeが'0002'だけのTransactionDetailオブジェクト
・リレーションで繋がっていないモデル
django
1class TransactionHead(models.Model): 2 3 class Meta: 4 db_table = 'transaction_head' 5 6 transactionHeadId = models.BigIntegerField(verbose_name="取引ID", null=True) 7 transactionDateTime = models.DateTimeField(verbose_name="取引日時", null=True) 8 transactionHeadDivision = models.CharField(max_length=1, verbose_name="取引区分", null=True) 9 storeId = models.IntegerField(verbose_name="店舗ID (PK)", null=True) 10 storeCode = models.CharField(max_length=20, verbose_name="店舗コード", null=True) 11 12 13class TransactionDetail(models.Model): 14 15 class Meta: 16 db_table = 'transaction_detail' 17 18 transactionHeadId = models.BigIntegerField(verbose_name="取引ID", null=True) 19 transactionDateTime = models.DateTimeField(verbose_name="取引日時", null=True) 20 transactionDetailId = models.IntegerField(verbose_name="取引明細ID", null=True) 21 productCode = models.CharField(max_length=20, verbose_name="商品コード", null=True) 22 productName = models.CharField(max_length=85, verbose_name="商品名", null=True) 23 24 25 @property 26 def transaction_head(self): 27 return TransactionHead.objects.get(transactionHeadId=self.transactionHeadId) 28
・試したこと
django
1transaction = TransactionDetail.objects.filter(TransactionHead.storeCode='0002')
エラーで取得出来ませんでした。
やったことないですが、それSQLで!みたいな回答が↓に。こんな方法しかないのかもです。
https://stackoverflow.com/questions/19590483/django-queryset-join-without-foreignkey