質問編集履歴

1

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

2018/12/19 08:16

投稿

Meteor
Meteor

スコア18

test CHANGED
File without changes
test CHANGED
@@ -4,11 +4,25 @@
4
4
 
5
5
 
6
6
 
7
+ 目標:
8
+
7
- views内に以下のリストビューがあり、連携していない売上情報(TransactionHead,TransactionDetail)を表示していま。この中storeCodeというのが情報として持っていて、別のもmodelでstoreがあり、id/store_code/store_nameのカラム持ってます。
9
+ 売上データを表示するリスト売れた店名表示させた
8
10
 
9
11
 
10
12
 
13
+ 現状:
14
+
15
+ リレーションで関連づけていないため、数字のコードの表記のみ
16
+
17
+
18
+
19
+ 外部システムからAPIで売上データが飛んできます。
20
+
11
- 下記コードの中にstoreCodeに合ったstore_nameを紐ずけてテンプレートに表示したいですが、様に記述すれば解決するかお知恵をただきたいです
21
+ 売上情報TransactionHeadとTransactionDetail二つあり二つはリレーションしてません
22
+
23
+ この二つは、データの構造を変えずにデータベースへ保存しています。
24
+
25
+ 保存した売上データをDjango内でリスト表示するために、下記のviewで一覧表示を出しています。
12
26
 
13
27
 
14
28
 
@@ -18,11 +32,13 @@
18
32
 
19
33
  def get_context_data(self, **kwargs):
20
34
 
35
+      user_id = self.request.user.id
36
+
21
37
  context = super(TransactionListView, self).get_context_data(**kwargs)
22
38
 
23
39
  context["object_list"] = []
24
40
 
25
- for detail in TransactionDetail.objects.filter(groupCode=group_code).order_by('-dateTime'):
41
+ for detail in TransactionDetail.objects.filter(user_id=user_id).order_by('-dateTime'):
26
42
 
27
43
  head = TransactionHead.objects.filter(
28
44
 
@@ -50,4 +66,62 @@
50
66
 
51
67
 
52
68
 
69
+ TransactionHeadの中にstoreCodeという情報を持っていて4桁の数字が入っています。
70
+
71
+ storeというモデルがあり、id,store_code,store_nameのカラムを持っています。
72
+
73
+
74
+
75
+ ```model
76
+
77
+ class TransactionHead(models.Model):
78
+
79
+ transactionHeadId = models.BigIntegerField(verbose_name="取引ID", null=True)
80
+
81
+ transactionDateTime = models.DateTimeField(verbose_name="取引日時", null=True)
82
+
83
+ subtotal = models.DecimalField(max_digits=9, decimal_places=0, verbose_name="小計", null=True)
84
+
85
+ total = models.DecimalField(max_digits=9, decimal_places=0, verbose_name="合計", null=True)
86
+
87
+ storeCode = models.CharField(max_length=20, verbose_name="店舗コード", null=True)
88
+
89
+
90
+
91
+ class TransactionDetail(models.Model):
92
+
93
+ transactionHeadId = models.BigIntegerField(verbose_name="取引ID", null=True)
94
+
95
+ productId = models.BigIntegerField(verbose_name="商品ID", null=True)
96
+
97
+ productCode = models.CharField(max_length=20, verbose_name="商品コード", null=True)
98
+
99
+
100
+
101
+ class Store(models.Model):
102
+
103
+ id = models.BigIntegerField(verbose_name="ID")
104
+
105
+ store_name = models.CharField(max_length=255, verbose_name="店名")
106
+
107
+ store_code = models.CharField(max_length=255, verbose_name="ストアコード", blank=True)
108
+
109
+
110
+
111
+ ```
112
+
113
+
114
+
115
+ storeCodeに対応するstore_nameを紐ずけてテンプレートのリストに表示したいのですが、どの様に記述すれば解決出来るかお知恵をいただきたいです。
116
+
117
+
118
+
119
+ テンプレート上で{% for object in object_list %}の{{object.store_name}}で表示出来るのを目指しています。
120
+
121
+ (尚、運用は開始しておりデータがどんどん溜まってきます。よってリレーションで繋げられていません。)
122
+
123
+
124
+
125
+
126
+
53
127
  何卒よろしくお願いします。