teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ご指摘いただいた内容を追記し、目標の詳細を明記しました。

2018/12/19 08:16

投稿

Meteor
Meteor

スコア18

title CHANGED
File without changes
body CHANGED
@@ -1,16 +1,24 @@
1
1
  POSと連携したシステムを独学で作っているのですが、うまく情報を引き出せずにいます。
2
2
  システムは、python3.6 django2.1を使用しています。
3
3
 
4
+ 目標:
4
- views内に以下のリストビューがあり、連携していない売上情報(TransactionHead,TransactionDetail)を表示していま。この中storeCodeというのが情報として持っていて、別のもmodelでstoreがあり、id/store_code/store_nameのカラム持ってます。
5
+ 売上データを表示するリスト売れた店名表示させた
5
6
 
7
+ 現状:
6
- 下記コドの中にstoreCodeに合ったstore_nameを紐ずけてテンプレートに表示したのですが様に述すれば解決するかお知恵をいただきたいです。
8
+ リレションで関連づけていないため数字コードの表のみ
7
9
 
10
+ 外部システムからAPIで売上データが飛んできます。
11
+ 売上情報TransactionHeadとTransactionDetailの二つがあり、この二つはリレーションしていません。
12
+ この二つは、データの構造を変えずにデータベースへ保存しています。
13
+ 保存した売上データをDjango内でリスト表示するために、下記のviewで一覧表示を出しています。
14
+
8
15
  ```django
9
16
  class TransactionListView(ListView):
10
17
  def get_context_data(self, **kwargs):
18
+      user_id = self.request.user.id
11
19
  context = super(TransactionListView, self).get_context_data(**kwargs)
12
20
  context["object_list"] = []
13
- for detail in TransactionDetail.objects.filter(groupCode=group_code).order_by('-dateTime'):
21
+ for detail in TransactionDetail.objects.filter(user_id=user_id).order_by('-dateTime'):
14
22
  head = TransactionHead.objects.filter(
15
23
  transactionHeadId=detail.transactionHeadId).first()
16
24
 
@@ -24,4 +32,33 @@
24
32
  return context
25
33
  ```
26
34
 
35
+ TransactionHeadの中にstoreCodeという情報を持っていて4桁の数字が入っています。
36
+ storeというモデルがあり、id,store_code,store_nameのカラムを持っています。
37
+
38
+ ```model
39
+ class TransactionHead(models.Model):
40
+ transactionHeadId = models.BigIntegerField(verbose_name="取引ID", null=True)
41
+ transactionDateTime = models.DateTimeField(verbose_name="取引日時", null=True)
42
+ subtotal = models.DecimalField(max_digits=9, decimal_places=0, verbose_name="小計", null=True)
43
+ total = models.DecimalField(max_digits=9, decimal_places=0, verbose_name="合計", null=True)
44
+ storeCode = models.CharField(max_length=20, verbose_name="店舗コード", null=True)
45
+
46
+ class TransactionDetail(models.Model):
47
+ transactionHeadId = models.BigIntegerField(verbose_name="取引ID", null=True)
48
+ productId = models.BigIntegerField(verbose_name="商品ID", null=True)
49
+ productCode = models.CharField(max_length=20, verbose_name="商品コード", null=True)
50
+
51
+ class Store(models.Model):
52
+ id = models.BigIntegerField(verbose_name="ID")
53
+ store_name = models.CharField(max_length=255, verbose_name="店名")
54
+ store_code = models.CharField(max_length=255, verbose_name="ストアコード", blank=True)
55
+
56
+ ```
57
+
58
+ storeCodeに対応するstore_nameを紐ずけてテンプレートのリストに表示したいのですが、どの様に記述すれば解決出来るかお知恵をいただきたいです。
59
+
60
+ テンプレート上で{% for object in object_list %}の{{object.store_name}}で表示出来るのを目指しています。
61
+ (尚、運用は開始しておりデータがどんどん溜まってきます。よってリレーションで繋げられていません。)
62
+
63
+
27
64
  何卒よろしくお願いします。